From 3b0b005b952b1092404fdd5ae1732ec9561794af Mon Sep 17 00:00:00 2001 From: sanine Date: Sun, 11 Jun 2023 22:20:04 -0500 Subject: add basic computations --- src/mind/topology.test.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'src/mind/topology.test.js') 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))], + [], + ]); +}); -- cgit v1.2.1