| 123456789101112131415 |
- import assert from 'node:assert/strict'
- import { toPipeNetwork } from '../../../src/modules/cockpit/domain/pipeNetwork.js'
- import { pipeColorKey } from '../../../src/modules/cockpit/domain/pipeVisual.js'
- import { planPipeModels } from '../../../src/modules/cockpit/domain/pipeModels.js'
- const row=(networkLevel,industry='DRAINAGE',remark='雨水')=>({industry,networkLevel,remark})
- for(const value of [undefined,null,'', ' ',0,'0'])assert.equal(pipeColorKey(row(value)),'SEWAGE','default/zero drainage is sewage even if remark says rain')
- for(const value of [1,'1',' 1 '])assert.equal(pipeColorKey(row(value)),'RAINWATER')
- for(const value of [2,'2',false,true,[],{},'bad'])assert.equal(pipeColorKey(row(value)),'DRAINAGE_UNKNOWN','invalid level must not become sewage/rain')
- for(const industry of ['GAS','WATER_SUPPLY','MANHOLE'])assert.equal(pipeColorKey(row(1,industry)),industry,'level applies to drainage only')
- const feature=(level,alias=false)=>({geometry:{type:'LineString',coordinates:[[110.39,28.44],[110.3901,28.44]]},properties:{code:alias?'snake':'camel',industry:'DRAINAGE',remark:'DXF台账',diameter:null,coordinateValidation:{renderable:true},[alias?'network_level':'networkLevel']:level}})
- const adapted=toPipeNetwork({features:[feature('1'),feature('0',true)]})
- assert.deepEqual(adapted.pipes.map(p=>p.networkLevel),['1','0'])
- assert.deepEqual(planPipeModels(adapted).instances.map(p=>p.colorKey),['RAINWATER','SEWAGE'])
- assert.ok(planPipeModels(adapted).instances.every(p=>p.visualDefaultDiameterM===.8&&p.diameterM===null))
- console.log('PASS network level 0/1, absent default, remark override, non-drainage immunity and API mapping')
|