| 123456789101112131415161718 |
- import assert from 'node:assert/strict'
- import { planPipeModels } from '../../../src/modules/cockpit/domain/pipeModels.js'
- import { toPipeNetwork } from '../../../src/modules/cockpit/domain/pipeNetwork.js'
- const pipe=(industry,remark,diameter=100)=>({code:industry+remark,industry,remark,diameter,positions:[[110.39,28.44],[110.3901,28.44]]})
- const input=[pipe('GAS',''),pipe('WATER_SUPPLY',''),pipe('DRAINAGE','污水'),pipe('DRAINAGE','雨水')]
- const plan=planPipeModels({pipes:input,components:[]})
- assert.deepEqual(plan.instances.map(row=>row.colorKey),['GAS','WATER_SUPPLY','SEWAGE','RAINWATER'])
- assert.ok(plan.instances.every(row=>row.displayDiameterM>=1.5),'all narrow real diameters need legible demonstration thickness')
- assert.ok(plan.instances.every(row=>row.diameterM===.1),'source diameter is NOT visual size')
- assert.ok(plan.instances.every(row=>row.displayDiameterM<=3),'entire body stays beneath terrain at 2m centre depth')
- const payload={features:[{geometry:{type:'LineString',coordinates:[[110.39,28.44],[110.3901,28.44]]},properties:{code:'remark-wins',industry:'DRAINAGE',name:'雨水管',remark:'污水',diameter:400,coordinateValidation:{renderable:true}}}]}
- const adapted=toPipeNetwork(payload)
- assert.equal(adapted.pipes[0].remark,'污水')
- assert.equal(planPipeModels(adapted).instances[0].colorKey,'SEWAGE','remark governs even when name conflicts')
- assert.equal(planPipeModels({pipes:[pipe('DRAINAGE','雨水 污水')],components:[]}).instances[0].colorKey,'DRAINAGE_UNKNOWN')
- assert.equal(planPipeModels({pipes:[{...pipe('DRAINAGE',''),name:'雨水管'}],components:[]}).instances[0].colorKey,'DRAINAGE_UNKNOWN','never guess from name')
- console.log('PASS five-class semantics from remark, explicit unknown, thick display distinct from source diameter')
|