import assert from 'node:assert/strict' import {readFileSync,writeFileSync,existsSync} from 'node:fs' import {resolve,join} from 'node:path' import {parseGlb} from './instance-repeated-meshes.mjs' const dir=resolve(process.argv[2]),m=JSON.parse(readFileSync(join(dir,'manifest.json'))),tree=JSON.parse(readFileSync(join(dir,'tileset.json'))) const ids=new Set(),uris=new Set(),declared=new Map(m.records.map(r=>[resolve(dir,r.uri),r])) let content=0,maxTriangles=0,instancedGroups=0,instancedCount=0,far=0,near=0,fine=0 for(const d of m.decisions){ for(const id of d.buildingIds){assert.ok(!ids.has(id),'duplicate ownership '+id);ids.add(id)} if(d.useInstancing){assert.ok(d.candidateBytesr.sourceCell===d.cell),'missing reachable cell '+d.cell) const result={passed:true,buildings:ids.size,content,far,near,fine,maxRenderedTriangles:maxTriangles,instancedGroups,instancedCount, instanceCells:m.instancedCells,instancedBuildings:m.instancedBuildings,allFallbacksReachable:true, coverageValidated:true,renderingValidated:false,fpsValidated:false} if(process.argv[3])writeFileSync(process.argv[3],JSON.stringify(result,null,2)) console.log(JSON.stringify(result))