1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.math4.neuralnet;
19
20 import org.junit.Test;
21 import org.junit.Assert;
22
23
24
25
26 public class NeuronTest {
27 @Test
28 public void testGetIdentifier() {
29 final long id = 1234567;
30 final Neuron n = new Neuron(id, new double[] {0 });
31
32 Assert.assertEquals(id, n.getIdentifier());
33 }
34
35 @Test
36 public void testGetSize() {
37 final double[] features = {-1, -1e-97, 0, 23.456, 9.01e203};
38 final Neuron n = new Neuron(1, features);
39 Assert.assertEquals(features.length, n.getSize());
40 }
41
42 @Test
43 public void testGetFeatures() {
44 final double[] features = {-1, -1e-97, 0, 23.456, 9.01e203};
45 final Neuron n = new Neuron(1, features);
46
47 final double[] f = n.getFeatures();
48
49 Assert.assertFalse(f == features);
50
51
52 Assert.assertEquals(features.length, f.length);
53 for (int i = 0; i < features.length; i++) {
54 Assert.assertEquals(features[i], f[i], 0d);
55 }
56 }
57
58 @Test
59 public void testCompareAndSetFeatures() {
60 final Neuron n = new Neuron(1, new double[] {0 });
61 double[] expect = n.getFeatures();
62 double[] update = new double[] {expect[0] + 1.23};
63
64
65 boolean ok = n.compareAndSetFeatures(expect, update);
66
67 Assert.assertTrue(ok);
68
69 Assert.assertEquals(update[0], n.getFeatures()[0], 0d);
70
71
72 double[] update1 = new double[] {update[0] + 4.56};
73
74
75
76 ok = n.compareAndSetFeatures(expect, update1);
77
78 Assert.assertFalse(ok);
79
80 Assert.assertEquals(update[0], n.getFeatures()[0], 0d);
81 }
82
83 @Test
84 public void testCopy() {
85 final Neuron n = new Neuron(1, new double[] {9.87 });
86
87
88 double[] update = new double[] {n.getFeatures()[0] + 2.34};
89 n.compareAndSetFeatures(n.getFeatures(), update);
90
91
92 final Neuron copy = n.copy();
93
94
95 Assert.assertTrue(n.getFeatures()[0] == copy.getFeatures()[0]);
96 Assert.assertEquals(n.getNumberOfAttemptedUpdates(),
97 copy.getNumberOfAttemptedUpdates());
98
99
100 update = new double[] {1.23 * n.getFeatures()[0]};
101 n.compareAndSetFeatures(n.getFeatures(), update);
102
103
104 Assert.assertFalse(n.getFeatures()[0] == copy.getFeatures()[0]);
105 Assert.assertNotEquals(n.getNumberOfSuccessfulUpdates(),
106 copy.getNumberOfSuccessfulUpdates());
107 }
108 }