diff options
author | sanine <sanine.not@pm.me> | 2023-11-05 23:25:58 -0600 |
---|---|---|
committer | sanine <sanine.not@pm.me> | 2023-11-05 23:25:58 -0600 |
commit | 7274cef10061f0b9c2c907b730589b4f221b2487 (patch) | |
tree | b76de2774429bdd69e01322233e9ae8b7b838a48 /src/world/agent.test.js | |
parent | 639a559dd44d924c6b2e545c7d2eb28b11d4a314 (diff) |
implement agent change conflict/merge detection
Diffstat (limited to 'src/world/agent.test.js')
-rw-r--r-- | src/world/agent.test.js | 51 |
1 files changed, 48 insertions, 3 deletions
diff --git a/src/world/agent.test.js b/src/world/agent.test.js index ea64fcb..2a86908 100644 --- a/src/world/agent.test.js +++ b/src/world/agent.test.js @@ -9,7 +9,6 @@ test("proposals changing different tiles don't conflict", () => { const a = { world_changes: [{ x: 4, y: 3, from: 'empty', to: 'mutable' }], }; - const b = { world_changes: [{ x: 4, y: 4, from: 'empty', to: 'flag' }], }; @@ -22,7 +21,6 @@ test("proposals changing the same tile to different states conflict", () => { const a = { world_changes: [{ x: 4, y: 3, from: 'empty', to: 'mutable' }], }; - const b = { world_changes: [{ x: 4, y: 3, from: 'empty', to: 'flag' }], }; @@ -35,10 +33,57 @@ test("proposals changing the same tile to the same state merge to a single propo const a = { world_changes: [{ x: 4, y: 3, from: 'empty', to: 'mutable' }], }; - const b = { world_changes: [{ x: 4, y: 3, from: 'empty', to: 'mutable' }], }; expect(proposal_merge([a], b)).toEqual([a]); }); + + +test("proposals moving two agents to the same tile conflict", () => { + const a = { + agent_changes: [{ agent_id: 'aaa', x: 4, y: 3 }], + }; + const b = { + agent_changes: [{ agent_id: 'bbb', x: 4, y: 3 }], + }; + + expect(proposal_merge([a], b)).toEqual([]); +}); + + +test("proposals moving two agents to different tiles do not conflict", () => { + const a = { + agent_changes: [{ agent_id: 'aaa', x: 4, y: 3 }], + }; + const b = { + agent_changes: [{ agent_id: 'bbb', x: 3, y: 3 }], + }; + + expect(proposal_merge([a], b)).toEqual([a, b]); +}); + + +test("proposals moving the same agent to different tiles conflict", () => { + const a = { + agent_changes: [{ agent_id: 'aaa', x: 4, y: 3 }], + }; + const b = { + agent_changes: [{ agent_id: 'aaa', x: 3, y: 3 }], + }; + + expect(proposal_merge([a], b)).toEqual([]); +}); + + +test("proposals moving the same agent to the same tile merge", () => { + const a = { + agent_changes: [{ agent_id: 'aaa', x: 4, y: 3 }], + }; + const b = { + agent_changes: [{ agent_id: 'aaa', x: 4, y: 3 }], + }; + + expect(proposal_merge([a], b)).toEqual([a]); +}); |