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:
@@ -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);
|
||||
Reference in New Issue
Block a user