feat(js): m03 rules with fixtures and tests

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This commit is contained in:
Lucas Winther
2026-10-28 23:41:34 +01:00
co-authored by Claude Sonnet 5.5
parent e9c41fed03
commit 2e39f23bb3
7 changed files with 1570 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
import test from 'node:test'
import assert from 'node:assert/strict'
import { move, inBounds, turn, advance } from '../src/rules.js'
import { loadFixture, freeze } from './helpers.js'
const fixtureTests = (name, f) => {
const fx = loadFixture(name)
fx.cases.forEach((c) =>
test(`m03 ${fx.function}: ${c.name}`, () => assert.deepStrictEqual(f(...freeze(c.args)), c.expected)))
}
fixtureTests('m03-move', move)
fixtureTests('m03-in-bounds', inBounds)
fixtureTests('m03-turn', turn)
fixtureTests('m03-advance', advance)