From f78493e192daf4639b91352909e4029b9970fcdb Mon Sep 17 00:00:00 2001 From: sanine Date: Wed, 8 Nov 2023 00:47:06 -0600 Subject: implement basic sensing & refactor world/cells -> lattice --- src/world/sense.test.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/world/sense.test.js (limited to 'src/world/sense.test.js') diff --git a/src/world/sense.test.js b/src/world/sense.test.js new file mode 100644 index 0000000..1ef7bce --- /dev/null +++ b/src/world/sense.test.js @@ -0,0 +1,33 @@ +import { sense_read } from './sense.js'; + + +test("basic sense works", () => { + const flag_sense = { + size: 1, + read: (lattice, agent) => { + const {x, y} = agent; + return [ lattice[y-1][x].type === 'flag' ? 1.0 : 0.0 ] + }, + }; + + const lattice = [[ { type: 'flag' } ]]; + const agent = { x: 0, y: 1 }; + + expect(sense_read(lattice, agent, flag_sense)).toEqual([1.0]); +}); + + +test("senses throw if the size is incorrect", () => { + const flag_sense = { + size: 2, + read: (lattice, agent) => { + const {x, y} = agent; + return [ lattice[y-1][x].type === 'flag' ? 1.0 : 0.0 ] + }, + } + + const lattice = [[ { type: 'flag' } ]]; + const agent = { x: 0, y: 1 }; + + expect(() => sense_read(lattice, agent, flag_sense)).toThrow(); +}); -- cgit v1.2.1