// Re-verify the saved trial using today's generator, without replacing any asset. import assert from 'node:assert/strict' import {readFileSync} from 'node:fs' import {createHash} from 'node:crypto' import {textureCoarseRoofs} from './texture-coarse-roofs.mjs' import {unpackInstanceBuffers} from './instance-buffer-codec.mjs' import {decodePrimitive} from './instance-safe-primitives.mjs' import {accessorValues} from './instance-repeated-meshes.mjs' import {tileRasterBudget} from './raster-budget.mjs' const dir='.scratch/cockpit-shell-panel-layout/verify/artifacts/t35/roof-quality-pilot/',report=JSON.parse(readFileSync(dir+'report.json')),sha=b=>createHash('sha256').update(b).digest('hex') for(const row of report.results){ const raw=readFileSync(row.sourcePath);assert.equal(sha(raw),row.sourceSha256) const defaultResult=textureCoarseRoofs(raw,{maxDimension:64}) const currentImage=readFileSync(dir+`region-${row.region}-${row.uri.slice(0,-4)}-current.jpg`) assert.equal(defaultResult.report.rasterSha256,sha(currentImage),'default repro matches historical raster') const p=row.processed.processing,generated=textureCoarseRoofs(raw,{maxDimension:p.maxDimension,metresPerPixel:p.requestedMetresPerPixel,sharpenAmount:p.sharpenAmount,jpegQuality:p.jpegQuality}) const bytes=readFileSync(row.pilotAsset);assert.equal(sha(bytes),row.pilotAssetSha256) const saved=unpackInstanceBuffers(bytes),fresh=unpackInstanceBuffers(generated.bytes) assert.equal(generated.report.rasterSha256,row.processed.rasterSha256) assert.deepEqual(saved.json.nodes,fresh.json.nodes) for(let i=0;i{const v=saved.json.bufferViews[im.bufferView];return{mimeType:im.mimeType,bytes:saved.bin.subarray(v.byteOffset,v.byteOffset+v.byteLength)}}) assert.deepEqual(tileRasterBudget(images,saved.json.textures),row.rasterBudget) for(const s of row.processed.sourceTiles)assert.equal(sha(readFileSync(s.path)),s.sha256) } assert.ok(report.region25PilotEstimate<96*1024*1024) console.log(JSON.stringify({passed:true,pilots:report.results.length,defaultRasterBitwise:true,freshProcessedRasterBitwise:true,geometryAndUv:true,allSourceHashes:true,regionEstimate:report.region25PilotEstimate,configured:false}))