| 12345678910111213141516171819202122232425262728293031 |
- // 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<saved.json.meshes[0].primitives.length;i++){
- const a=saved.json.meshes[0].primitives[i],b=fresh.json.meshes[0].primitives[i]
- assert.deepEqual(decodePrimitive(saved.json,saved.bin,a),decodePrimitive(fresh.json,fresh.bin,b))
- if(b.attributes.TEXCOORD_0!==undefined)assert.deepEqual(accessorValues(saved.json,saved.bin,a.attributes.TEXCOORD_0),accessorValues(fresh.json,fresh.bin,b.attributes.TEXCOORD_0))
- }
- const images=saved.json.images.map(im=>{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}))
|