| 123456789101112131415161718192021222324252627282930 |
- import assert from 'node:assert/strict'
- import { planPipeModels } from '../../../src/modules/cockpit/domain/pipeModels.js'
- const plan = planPipeModels({ pipes: [
- { code: 'known', industry: 'GAS', diameter: 400, positions: [[110.39, 28.44], [110.3901, 28.44], [110.3901, 28.4401]] },
- { code: 'missing', industry: 'GAS', diameter: null, positions: [[110.39, 28.44], [110.3901, 28.44]] },
- ], components: [] })
- assert.equal(plan.instances.length, 3, 'original path spans plus missing-diameter display model, no invented elbow')
- assert.deepEqual(plan.instances[0].start, [110.39, 28.44])
- assert.deepEqual(plan.instances[1].end, [110.3901, 28.4401])
- assert.equal(plan.instances[0].diameterM, 0.4)
- assert.equal(plan.virtualDepthM, 2)
- assert.deepEqual(plan.fallbacks, [])
- assert.equal(plan.instances[2].diameterM, null)
- assert.equal(plan.instances[2].diameterSource, 'visual-default')
- assert.equal(plan.instances[2].visualDefaultDiameterM, 0.16)
- console.log('PASS known diameter, exact path and missing diameter display placeholder')
- const parts = planPipeModels({ pipes: [], components: [
- { code: 'v', kind: 'valve', industry: 'GAS', position: [110.39, 28.44] },
- { code: 't', kind: 'branch', label: 'tee', position: [110.39, 28.44] },
- { code: 'x', kind: 'branch', label: 'cross', position: [110.39, 28.44] },
- { code: 'e', kind: 'elbow', position: [110.39, 28.44] },
- { code: 'u', kind: 'other', label: 'regulator', position: [110.39, 28.44] },
- ] })
- assert.deepEqual(parts.instances.map((row) => row.kind), ['valve', 'branch', 'cross', 'elbow'])
- assert.equal(parts.instances[0].sizeM, 1)
- assert.equal(parts.instances[0].orientationSource, 'fixed-approximate')
- assert.deepEqual(parts.fallbacks, [{ id: 'component:u', reason: '未建模构件,保留原始符号' }])
- console.log('PASS four classes and cross variant; unknown does not masquerade')
|