verify-region-admission-index.mjs 1.7 KB

123456789101112131415
  1. import assert from 'node:assert/strict'
  2. import {readFileSync,writeFileSync} from 'node:fs'
  3. import {resolve,join,dirname} from 'node:path'
  4. const out=resolve(process.argv[2]),base=resolve(out,'../city-regions-v6'),m=JSON.parse(readFileSync(join(out,'manifest.json'))),old=JSON.parse(readFileSync(join(base,'manifest.json'))),tree=JSON.parse(readFileSync(join(out,'coarse-tileset.json'))),ot=JSON.parse(readFileSync(join(base,'coarse-tileset.json')))
  5. assert.equal(m.regions.length,old.regions.length);assert.equal(tree.root.children.length,ot.root.children.length)
  6. let contents=0
  7. for(let i=0;i<m.regions.length;i++){
  8. const r=m.regions[i],o=old.regions[i],newUrl=resolve(out,r.url),oldUrl=resolve(base,o.url)
  9. assert.equal(newUrl,oldUrl);assert.equal(r.contentCount,o.contentCount);assert.equal(r.decodedGeometryBytes,o.decodedGeometryBytes)
  10. const t=JSON.parse(readFileSync(newUrl));assert.deepEqual(r.admissionBounds,t.root.children.map(c=>c.boundingVolume));contents+=r.admissionBounds.length
  11. for(const [urls,expected] of [[r.contentUrls,o.contentUrls],[r.previewContentUrls,o.previewContentUrls]])assert.deepEqual(urls.map(p=>resolve(dirname(newUrl),p)),expected.map(p=>resolve(dirname(oldUrl),p)))
  12. }
  13. for(let i=0;i<tree.root.children.length;i++){const n=tree.root.children[i],o=ot.root.children[i];assert.equal(resolve(out,n.content.uri),resolve(base,o.content.uri));assert.deepEqual(n.boundingVolume,o.boundingVolume)}
  14. const result={passed:true,regions:m.regions.length,actualAdmissionBounds:contents,allModelUrisUnchanged:true,geometryChanged:false,texturesChanged:false,budgetsUnchanged:true,renderingValidated:false}
  15. if(process.argv[3])writeFileSync(process.argv[3],JSON.stringify(result,null,2));console.log(JSON.stringify(result))