diff options
Diffstat (limited to 'src/world/sense.test.js')
-rw-r--r-- | src/world/sense.test.js | 33 |
1 files changed, 33 insertions, 0 deletions
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(); +}); |