diff options
author | sanine <sanine.not@pm.me> | 2023-11-10 19:51:02 -0600 |
---|---|---|
committer | sanine <sanine.not@pm.me> | 2023-11-10 19:51:02 -0600 |
commit | 984f07a24d3d377c13358fc5533c0eda383858f5 (patch) | |
tree | f5031a2abc9b5382c3c1f585481a82a4da7553da /src/simulation | |
parent | 57172b8c3c851497b55b5d4c90ddb0cb5f9b202c (diff) |
refactor: actions take an additional world parameter
Diffstat (limited to 'src/simulation')
-rw-r--r-- | src/simulation/actions.js | 8 | ||||
-rw-r--r-- | src/simulation/actions.test.js | 64 |
2 files changed, 36 insertions, 36 deletions
diff --git a/src/simulation/actions.js b/src/simulation/actions.js index aaaf1d8..0f1a767 100644 --- a/src/simulation/actions.js +++ b/src/simulation/actions.js @@ -5,7 +5,7 @@ const threshold = 0.5; const move_forward = { size: 1, - propose: (agent, head) => { + propose: (world, agent, head) => { if (head[0] > threshold) { const dx = { n: 0, e: 1, s: 0, w: -1 }[agent.flags.orientation]; const dy = { n: -1, e: 0, s: 1, w: 0 }[agent.flags.orientation]; @@ -24,7 +24,7 @@ const move_forward = { const move_backward = { size: 1, - propose: (agent, head) => { + propose: (world, agent, head) => { if (head[0] > threshold) { const dx = { n: 0, e: 1, s: 0, w: -1 }[agent.flags.orientation]; const dy = { n: -1, e: 0, s: 1, w: 0 }[agent.flags.orientation]; @@ -44,7 +44,7 @@ const move_backward = { const turn_left = { size: 1, - propose: (agent, head) => { + propose: (world, agent, head) => { if (head[0] > threshold) { const orientation = { n: 'w', e: 'n', s: 'e', w: 's' }[agent.flags.orientation]; return [{ @@ -62,7 +62,7 @@ const turn_left = { const turn_right = { size: 1, - propose: (agent, head) => { + propose: (world, agent, head) => { if (head[0] > threshold) { const orientation = { n: 'e', e: 's', s: 'w', w: 'n' }[agent.flags.orientation]; return [{ diff --git a/src/simulation/actions.test.js b/src/simulation/actions.test.js index d039f8a..04111f1 100644 --- a/src/simulation/actions.test.js +++ b/src/simulation/actions.test.js @@ -16,23 +16,23 @@ test("move forward", () => { const e = { id: 0, x: 0, y: 0, flags: { orientation: 'e' } }; const w = { id: 0, x: 0, y: 0, flags: { orientation: 'w' } }; - expect(move_forward.propose(n, [1])).toEqual([ + expect(move_forward.propose(null, n, [1])).toEqual([ { agent_changes: [{ agent_id: 0, x: 0, y: -1 }] }, ]); - expect(move_forward.propose(s, [1])).toEqual([ + expect(move_forward.propose(null, s, [1])).toEqual([ { agent_changes: [{ agent_id: 0, x: 0, y: 1 }] }, ]); - expect(move_forward.propose(e, [1])).toEqual([ + expect(move_forward.propose(null, e, [1])).toEqual([ { agent_changes: [{ agent_id: 0, x: 1, y: 0 }] }, ]); - expect(move_forward.propose(w, [1])).toEqual([ + expect(move_forward.propose(null, w, [1])).toEqual([ { agent_changes: [{ agent_id: 0, x: -1, y: 0 }] }, ]); - expect(move_forward.propose(n, [0])).toEqual([]); - expect(move_forward.propose(s, [-1])).toEqual([]); - expect(move_forward.propose(e, [0])).toEqual([]); - expect(move_forward.propose(w, [-1])).toEqual([]); + expect(move_forward.propose(null, n, [0])).toEqual([]); + expect(move_forward.propose(null, s, [-1])).toEqual([]); + expect(move_forward.propose(null, e, [0])).toEqual([]); + expect(move_forward.propose(null, w, [-1])).toEqual([]); }); @@ -42,23 +42,23 @@ test("move backward", () => { const e = { id: 0, x: 0, y: 0, flags: { orientation: 'e' } }; const w = { id: 0, x: 0, y: 0, flags: { orientation: 'w' } }; - expect(move_backward.propose(n, [1])).toEqual([ + expect(move_backward.propose(null, n, [1])).toEqual([ { agent_changes: [{ agent_id: 0, x: 0, y: 1 }] }, ]); - expect(move_backward.propose(s, [1])).toEqual([ + expect(move_backward.propose(null, s, [1])).toEqual([ { agent_changes: [{ agent_id: 0, x: 0, y: -1 }] }, ]); - expect(move_backward.propose(e, [1])).toEqual([ + expect(move_backward.propose(null, e, [1])).toEqual([ { agent_changes: [{ agent_id: 0, x: -1, y: 0 }] }, ]); - expect(move_backward.propose(w, [1])).toEqual([ + expect(move_backward.propose(null, w, [1])).toEqual([ { agent_changes: [{ agent_id: 0, x: 1, y: 0 }] }, ]); - expect(move_backward.propose(n, [0])).toEqual([]); - expect(move_backward.propose(s, [-1])).toEqual([]); - expect(move_backward.propose(e, [0])).toEqual([]); - expect(move_backward.propose(w, [-1])).toEqual([]); + expect(move_backward.propose(null, n, [0])).toEqual([]); + expect(move_backward.propose(null, s, [-1])).toEqual([]); + expect(move_backward.propose(null, e, [0])).toEqual([]); + expect(move_backward.propose(null, w, [-1])).toEqual([]); }); @@ -68,23 +68,23 @@ test("turn_left", () => { const e = { id: 0, x: 0, y: 0, flags: { orientation: 'e' } }; const w = { id: 0, x: 0, y: 0, flags: { orientation: 'w' } }; - expect(turn_left.propose(n, [1])).toEqual([ + expect(turn_left.propose(null, n, [1])).toEqual([ { agent_changes: [{ agent_id: 0, flags: { orientation: 'w' } }] }, ]); - expect(turn_left.propose(s, [1])).toEqual([ + expect(turn_left.propose(null, s, [1])).toEqual([ { agent_changes: [{ agent_id: 0, flags: { orientation: 'e' } }] }, ]); - expect(turn_left.propose(e, [1])).toEqual([ + expect(turn_left.propose(null, e, [1])).toEqual([ { agent_changes: [{ agent_id: 0, flags: { orientation: 'n' } }] }, ]); - expect(turn_left.propose(w, [1])).toEqual([ + expect(turn_left.propose(null, w, [1])).toEqual([ { agent_changes: [{ agent_id: 0, flags: { orientation: 's' } }] }, ]); - expect(turn_left.propose(n, [0])).toEqual([]); - expect(turn_left.propose(s, [-1])).toEqual([]); - expect(turn_left.propose(e, [0])).toEqual([]); - expect(turn_left.propose(w, [-1])).toEqual([]); + expect(turn_left.propose(null, n, [0])).toEqual([]); + expect(turn_left.propose(null, s, [-1])).toEqual([]); + expect(turn_left.propose(null, e, [0])).toEqual([]); + expect(turn_left.propose(null, w, [-1])).toEqual([]); }); @@ -94,23 +94,23 @@ test("turn_right", () => { const e = { id: 0, x: 0, y: 0, flags: { orientation: 'e' } }; const w = { id: 0, x: 0, y: 0, flags: { orientation: 'w' } }; - expect(turn_right.propose(n, [1])).toEqual([ + expect(turn_right.propose(null, n, [1])).toEqual([ { agent_changes: [{ agent_id: 0, flags: { orientation: 'e' } }] }, ]); - expect(turn_right.propose(s, [1])).toEqual([ + expect(turn_right.propose(null, s, [1])).toEqual([ { agent_changes: [{ agent_id: 0, flags: { orientation: 'w' } }] }, ]); - expect(turn_right.propose(e, [1])).toEqual([ + expect(turn_right.propose(null, e, [1])).toEqual([ { agent_changes: [{ agent_id: 0, flags: { orientation: 's' } }] }, ]); - expect(turn_right.propose(w, [1])).toEqual([ + expect(turn_right.propose(null, w, [1])).toEqual([ { agent_changes: [{ agent_id: 0, flags: { orientation: 'n' } }] }, ]); - expect(turn_right.propose(n, [0])).toEqual([]); - expect(turn_right.propose(s, [-1])).toEqual([]); - expect(turn_right.propose(e, [0])).toEqual([]); - expect(turn_right.propose(w, [-1])).toEqual([]); + expect(turn_right.propose(null, n, [0])).toEqual([]); + expect(turn_right.propose(null, s, [-1])).toEqual([]); + expect(turn_right.propose(null, e, [0])).toEqual([]); + expect(turn_right.propose(null, w, [-1])).toEqual([]); }); |