import assert from 'node:assert/strict'; import { LEVELS } from '../labs/airport/levels.js'; import { validateAirportLevel, solveAirport, replay, createState } from '../labs/airport/core.js'; const report=[]; for(const level of LEVELS){ assert.deepEqual(validateAirportLevel(level),[]); const solved=solveAirport(level),clear=solveAirport(level,createState(level),{clearFirst:true}); assert.equal(solved.status,'solved');assert.equal(solved.minimumActions,level.evidence.minimumActions); assert.ok(replay(level,level.solution).won);assert.ok(replay(level,level.experience).won); assert.equal(clear.status,'solved');assert.ok(clear.minimumActions>level.moveLimit); report.push({level:level.id,minimum:solved.minimumActions,budget:level.moveLimit,experience:level.experience.length, clearFirst:clear.minimumActions,remainingOriginals:solved.remainingOriginals,unique:'all 6 sides × 6 orientations'}); } console.table(report);