{ "function": "update", "cases": [ { "name": "toggle-pause-pauses-a-playing-game", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Playing", "frame": 0, "queued": null }, { "tag": "TogglePause" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Paused", "frame": 0, "queued": null } }, { "name": "toggle-pause-resumes-a-paused-game", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Paused", "frame": 0, "queued": null }, { "tag": "TogglePause" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Playing", "frame": 0, "queued": null } }, { "name": "toggle-pause-ignored-when-game-over", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "GameOver", "frame": 0, "queued": null }, { "tag": "TogglePause" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "GameOver", "frame": 0, "queued": null } }, { "name": "toggle-pause-ignored-when-won", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Won", "frame": 0, "queued": null }, { "tag": "TogglePause" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Won", "frame": 0, "queued": null } }, { "name": "turn-while-paused-is-ignored", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Paused", "frame": 0, "queued": null }, { "tag": "Turn", "dir": "Up" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Paused", "frame": 0, "queued": null } }, { "name": "tick-while-paused-is-ignored", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Paused", "frame": 0, "queued": null }, { "tag": "Tick" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Paused", "frame": 0, "queued": null } }, { "name": "restart-from-playing-starts-a-new-game-with-the-same-seed", "args": [ { "width": 20, "height": 20, "snake": [ { "x": 3, "y": 3 } ], "dir": "Up", "nextDir": "Up", "apple": null, "seed": 0, "score": 5, "status": "Playing", "frame": 9, "queued": null }, { "tag": "Restart" } ], "expected": { "width": 20, "height": 20, "snake": [ { "x": 10, "y": 10 }, { "x": 9, "y": 10 }, { "x": 8, "y": 10 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 18, "y": 13 }, "seed": 1831565813, "score": 0, "status": "Playing", "frame": 0, "queued": null } }, { "name": "restart-from-game-over", "args": [ { "width": 20, "height": 20, "snake": [ { "x": 10, "y": 10 }, { "x": 9, "y": 10 }, { "x": 8, "y": 10 } ], "dir": "Right", "nextDir": "Right", "apple": null, "seed": 0, "score": 2, "status": "GameOver", "frame": 0, "queued": null }, { "tag": "Restart" } ], "expected": { "width": 20, "height": 20, "snake": [ { "x": 10, "y": 10 }, { "x": 9, "y": 10 }, { "x": 8, "y": 10 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 18, "y": 13 }, "seed": 1831565813, "score": 0, "status": "Playing", "frame": 0, "queued": null } }, { "name": "restart-from-won", "args": [ { "width": 20, "height": 20, "snake": [ { "x": 10, "y": 10 }, { "x": 9, "y": 10 }, { "x": 8, "y": 10 } ], "dir": "Right", "nextDir": "Right", "apple": null, "seed": 0, "score": 7, "status": "Won", "frame": 0, "queued": null }, { "tag": "Restart" } ], "expected": { "width": 20, "height": 20, "snake": [ { "x": 10, "y": 10 }, { "x": 9, "y": 10 }, { "x": 8, "y": 10 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 18, "y": 13 }, "seed": 1831565813, "score": 0, "status": "Playing", "frame": 0, "queued": null } }, { "name": "restart-from-paused", "args": [ { "width": 20, "height": 20, "snake": [ { "x": 10, "y": 10 }, { "x": 9, "y": 10 }, { "x": 8, "y": 10 } ], "dir": "Right", "nextDir": "Right", "apple": null, "seed": 0, "score": 0, "status": "Paused", "frame": 0, "queued": null }, { "tag": "Restart" } ], "expected": { "width": 20, "height": 20, "snake": [ { "x": 10, "y": 10 }, { "x": 9, "y": 10 }, { "x": 8, "y": 10 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 18, "y": 13 }, "seed": 1831565813, "score": 0, "status": "Playing", "frame": 0, "queued": null } }, { "name": "frame-below-threshold-only-counts-the-frame", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Playing", "frame": 0, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Playing", "frame": 1, "queued": null } }, { "name": "frame-just-before-threshold-only-counts-the-frame", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Playing", "frame": 6, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Playing", "frame": 7, "queued": null } }, { "name": "frame-at-threshold-ticks-the-game-and-restarts-the-count", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Playing", "frame": 7, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 1, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Playing", "frame": 0, "queued": null } }, { "name": "frame-after-a-move-counts-from-zero-again", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 1, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Playing", "frame": 0, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 1, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Playing", "frame": 1, "queued": null } }, { "name": "frame-tick-that-eats-restarts-the-count", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 1, "y": 0 }, "seed": 0, "score": 2, "status": "Playing", "frame": 7, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 1, "y": 0 }, { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 1, "y": 1 }, "seed": 1831565813, "score": 3, "status": "Playing", "frame": 0, "queued": null } }, { "name": "frame-just-before-the-shrunk-threshold-only-counts-the-frame", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 3, "status": "Playing", "frame": 5, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 3, "status": "Playing", "frame": 6, "queued": null } }, { "name": "frame-threshold-shrinks-as-score-grows", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 3, "status": "Playing", "frame": 6, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 1, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 3, "status": "Playing", "frame": 0, "queued": null } }, { "name": "frame-at-top-speed-first-frame-does-not-tick", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 18, "status": "Playing", "frame": 0, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 18, "status": "Playing", "frame": 1, "queued": null } }, { "name": "frame-at-top-speed-ticks-every-second-frame", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 18, "status": "Playing", "frame": 1, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 1, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 18, "status": "Playing", "frame": 0, "queued": null } }, { "name": "frame-count-past-the-threshold-still-ticks", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Playing", "frame": 9, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 1, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Playing", "frame": 0, "queued": null } }, { "name": "frame-tick-can-end-the-game", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 2, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Playing", "frame": 7, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 2, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "GameOver", "frame": 0, "queued": null } }, { "name": "frame-when-paused-is-unchanged", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Paused", "frame": 7, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Paused", "frame": 7, "queued": null } }, { "name": "frame-when-game-over-is-unchanged", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "GameOver", "frame": 7, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "GameOver", "frame": 7, "queued": null } }, { "name": "frame-when-won-is-unchanged", "args": [ { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Won", "frame": 7, "queued": null }, { "tag": "Frame" } ], "expected": { "width": 3, "height": 2, "snake": [ { "x": 0, "y": 0 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 2, "y": 1 }, "seed": 0, "score": 0, "status": "Won", "frame": 7, "queued": null } }, { "name": "turn-with-no-turn-pending-sets-next-dir", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": null }, { "tag": "Turn", "dir": "Up" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": null } }, { "name": "turn-straight-back-with-no-turn-pending-is-ignored", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": null }, { "tag": "Turn", "dir": "Left" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": null } }, { "name": "perpendicular-key-while-a-turn-is-pending-is-queued", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": null }, { "tag": "Turn", "dir": "Left" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": "Left" } }, { "name": "key-in-the-current-direction-while-a-turn-is-pending-is-queued", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": null }, { "tag": "Turn", "dir": "Right" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": "Right" } }, { "name": "a-later-key-replaces-the-queued-one", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": "Left" }, { "tag": "Turn", "dir": "Right" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": "Right" } }, { "name": "repeating-the-pending-turn-changes-nothing", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": "Left" }, { "tag": "Turn", "dir": "Up" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": "Left" } }, { "name": "reversing-the-pending-turn-changes-nothing", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": "Left" }, { "tag": "Turn", "dir": "Down" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": "Left" } }, { "name": "turn-while-paused-with-a-turn-pending-is-not-queued", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Paused", "frame": 0, "queued": null }, { "tag": "Turn", "dir": "Left" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Paused", "frame": 0, "queued": null } }, { "name": "tick-moves-then-takes-the-queued-turn", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": "Left" }, { "tag": "Tick" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 4 }, { "x": 5, "y": 5 }, { "x": 4, "y": 5 } ], "dir": "Up", "nextDir": "Left", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": null } }, { "name": "tick-with-nothing-queued-leaves-next-dir", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": null }, { "tag": "Tick" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 4 }, { "x": 5, "y": 5 }, { "x": 4, "y": 5 } ], "dir": "Up", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": null } }, { "name": "frame-step-takes-the-queued-turn", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 7, "queued": "Left" }, { "tag": "Frame" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 4 }, { "x": 5, "y": 5 }, { "x": 4, "y": 5 } ], "dir": "Up", "nextDir": "Left", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": null } }, { "name": "frame-without-a-step-keeps-the-queue", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 3, "queued": "Left" }, { "tag": "Frame" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 4, "queued": "Left" } }, { "name": "tick-that-ends-the-game-keeps-the-queue", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 0 }, { "x": 4, "y": 0 }, { "x": 3, "y": 0 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": "Left" }, { "tag": "Tick" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 0 }, { "x": 4, "y": 0 }, { "x": 3, "y": 0 } ], "dir": "Up", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "GameOver", "frame": 0, "queued": "Left" } }, { "name": "tick-while-paused-keeps-the-queue", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Paused", "frame": 0, "queued": "Left" }, { "tag": "Tick" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Paused", "frame": 0, "queued": "Left" } }, { "name": "toggle-pause-keeps-the-queue", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": "Left" }, { "tag": "TogglePause" } ], "expected": { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Paused", "frame": 0, "queued": "Left" } }, { "name": "restart-clears-the-queue", "args": [ { "width": 10, "height": 10, "snake": [ { "x": 5, "y": 5 }, { "x": 4, "y": 5 }, { "x": 3, "y": 5 } ], "dir": "Right", "nextDir": "Up", "apple": { "x": 0, "y": 0 }, "seed": 1, "score": 0, "status": "Playing", "frame": 0, "queued": "Left" }, { "tag": "Restart" } ], "expected": { "width": 20, "height": 20, "snake": [ { "x": 10, "y": 10 }, { "x": 9, "y": 10 }, { "x": 8, "y": 10 } ], "dir": "Right", "nextDir": "Right", "apple": { "x": 12, "y": 8 }, "seed": 1831565814, "score": 0, "status": "Playing", "frame": 0, "queued": null } } ] }