16 lines
527 B
JavaScript
16 lines
527 B
JavaScript
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)
|