25 lines
1.7 KiB
JavaScript
25 lines
1.7 KiB
JavaScript
import assert from 'node:assert/strict'
|
|
import { readFileSync } from 'node:fs'
|
|
import test from 'node:test'
|
|
import { compileUnifiedNumberTree } from './compile-unified-number-tree.mjs'
|
|
|
|
test('identity, webview and direct broker numbers compile into one unique evidence tree', () => {
|
|
const generated = JSON.parse(readFileSync(new URL('../generated/unified-number-coordinate-tree.json', import.meta.url), 'utf8'))
|
|
assert.deepEqual(generated, compileUnifiedNumberTree())
|
|
assert.equal(generated.schema, 'hololake.unified-number-coordinate-tree/v2')
|
|
assert.equal(generated.recordId, 'HLP-UNIFIED-NUMBER-TREE-001')
|
|
assert.equal(generated.coordinateCount, 288)
|
|
assert.equal(generated.routeCount, 185)
|
|
assert.equal(generated.identityNodeCount, 4)
|
|
assert.equal(generated.protocolNodeCount, 99)
|
|
assert.equal(generated.referenceOnlyNodeCount, 16)
|
|
assert.equal(new Set(generated.routes.map((route) => route.path)).size, 185)
|
|
assert.equal(new Set([...generated.identityNodes, ...generated.protocolNodes, ...generated.routes].map((node) => node.path)).size, 288)
|
|
assert.equal(generated.invariants.everyPhysicalCallHasNumberedRoute, true)
|
|
assert.equal(generated.invariants.everyAcceptedCallHasEvidenceClass, true)
|
|
assert.equal(generated.invariants.everyProtocolReferenceHasNumberCoordinate, true)
|
|
assert.equal(generated.invariants.referenceOnlyNodesNeverExecutable, true)
|
|
assert.equal(generated.invariants.unresolvedNumberReferenceCount, 0)
|
|
assert.ok(generated.protocolNodes.filter((node) => node.nodeKind === 'GLS_REFERENCE_ONLY').every((node) => node.executionState === 'REFERENCE_ONLY_NOT_EXECUTABLE'))
|
|
assert.ok(generated.routes.every((route) => route.admission && route.evidence))
|
|
})
|