feat(airport): add the Hex Airport dispatch lab as a baseline snapshot

Six-side aprons, frozen levels, solver, rewards and verify scripts; the edge-runway readability work continues from here.
This commit is contained in:
toshiocn
2026-09-21 14:25:09 +08:00
parent 6e72b95ad8
commit 1be0e9caf1
18 changed files with 5229 additions and 43 deletions
+14
View File
@@ -0,0 +1,14 @@
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);