summaryrefslogtreecommitdiff
path: root/src/mind/topology.test.js
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2023-06-11 22:20:04 -0500
committersanine <sanine.not@pm.me>2023-06-11 22:20:04 -0500
commit3b0b005b952b1092404fdd5ae1732ec9561794af (patch)
tree1121694d35ad513d816cba7759eef7ea04d647d2 /src/mind/topology.test.js
parent2fdb91f84f6de8c03dcc9c50c20ea2fa79e255c1 (diff)
add basic computations
Diffstat (limited to 'src/mind/topology.test.js')
-rw-r--r--src/mind/topology.test.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/mind/topology.test.js b/src/mind/topology.test.js
index 5aab350..e1c5f87 100644
--- a/src/mind/topology.test.js
+++ b/src/mind/topology.test.js
@@ -99,3 +99,41 @@ test('self-connections work correctly', () => {
weight: [ 2 ],
});
});
+
+
+test('network computations', () => {
+ const n = network(1, 0, 1).connect(0, 1, 2.0);
+ const input = [ -0.5 ];
+ const state = [];
+ const result = n.compute(input, state);
+ expect(result).toEqual([
+ [ Math.tanh(-0.5 * 2.0) ],
+ [],
+ ]);
+
+ expect(input).toEqual([ -0.5 ]);
+ expect(state).toEqual([]);
+
+ expect(() => result[0] = 'hi').toThrow();
+ expect(() => result[0].push('hi')).toThrow();
+ expect(() => result[1] = 'hi').toThrow();
+ expect(() => result[1].push('hi')).toThrow();
+});
+
+
+test('multiple input network', () => {
+ const n = network(4, 0, 1)
+ .connect(0, 4, -1.0)
+ .connect(1, 4, -2.0)
+ .connect(2, 4, 1.0)
+ .connect(3, 4, 2.0)
+
+ expect(n.compute([1, 2, 3, 5], [])).toEqual([
+ [ Math.tanh(
+ (-1.0 * 1) +
+ (-2.0 * 2) +
+ (1.0 * 3) +
+ (2.0 * 5))],
+ [],
+ ]);
+});