diff options
Diffstat (limited to 'src/simulation/actions.test.js')
-rw-r--r-- | src/simulation/actions.test.js | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/simulation/actions.test.js b/src/simulation/actions.test.js index 43ad23c..c5f35be 100644 --- a/src/simulation/actions.test.js +++ b/src/simulation/actions.test.js @@ -7,7 +7,7 @@ const [ move_forward, move_backward, turn_left, turn_right, place, trigger, - pretend_frozen, + pretend_frozen, unfreeze, ...rest ] = actions; @@ -217,3 +217,32 @@ test("pretend frozen", () => { }] }]); }); + + +test("unfreeze", () => { + const agent1 = { id: 0, x: 0, y: 0, flags: { orientation: 'n' } }; + const agent2 = { id: 1, x: 0, y: -1 }; + const agent3 = { id: 10, x: -1, y: 0 }; + const agents = [ agent1, agent2, agent3 ]; + + expect(unfreeze.propose({agents}, agent1, [1])).toEqual([{ + agent_changes: [{ + agent_id: 1, + flags: { frozen: false, emit: [ 0, 1, 0, 0, 0, 0, 0, 0 ] }, + }] + }]); + + agent1.flags.orientation = 'w'; + + expect(unfreeze.propose({agents}, agent1, [1])).toEqual([{ + agent_changes: [{ + agent_id: 10, + flags: { frozen: false, emit: [ 0, 1, 0, 0, 0, 0, 0, 0 ] }, + }] + }]); + + agent1.flags.orientation = 's'; + expect(unfreeze.propose({agents}, agent1, [1])).toEqual([]); + + expect(unfreeze.propose({agents}, agent1, [0])).toEqual([]); +}); |