map/archive/generated-history/VALIDATE_FREEFORM_TILING.mjs
2026-08-08 17:41:30 +09:00

17 lines
1.1 KiB
JavaScript

import assert from 'node:assert/strict';
import { generateMap } from './mapGenerator.js';
import { createWorldMap } from './worldMap.js';
import { generatePatch } from './mapPatch.js';
const initial=generateMap(24681357,{terrainType:'auto',onProgress(){}});
const world=createWorldMap(structuredClone(initial));
const ox=world.originX, oy=world.originY;
const lasso={kind:'lasso',polygon:[
{x:ox-120,y:oy-120},{x:ox+410,y:oy+215},{x:ox+425,y:oy+240},{x:ox-105,y:oy-95}
]};
const t=Date.now();
const result=generatePatch(world,lasso,{patchMode:'expansion',terrainType:'auto',seed:888002,variant:0,maxQualityRetries:0,qualityTerrainAttempts:1,acceptBestAvailableQuality:true,onProgress(e){if(e?.key?.startsWith('large-tile-')&&e.status==='start') console.error(e.label)}});
const ms=Date.now()-t;
assert.equal(result.ok,true,result.reason||result.code);
assert.ok((result.tileCount||1)<9,`thin lasso still uses ${result.tileCount} tiles`);
console.log(JSON.stringify({ok:true,tileCount:result.tileCount||1,ms,seam:result.seamDiagnostics?.status||null},null,2));
process.exit(0);