
> aperture-cad@2.2.0 test
> node --test tests/*.test.mjs

TAP version 13
# Subtest: Transform-free entity packing and repeated nodes retain GPU ABI
ok 1 - Transform-free entity packing and repeated nodes retain GPU ABI
  ---
  duration_ms: 1.491143
  type: 'test'
  ...
# Subtest: Annotation failed transaction preserves items and redo history
ok 2 - Annotation failed transaction preserves items and redo history
  ---
  duration_ms: 3.435429
  type: 'test'
  ...
# Subtest: Annotation history rejects unbounded and invalid limits
ok 3 - Annotation history rejects unbounded and invalid limits
  ---
  duration_ms: 0.198895
  type: 'test'
  ...
# Subtest: Same backing-size viewport change invalidates camera coverage and requests a frame
ok 4 - Same backing-size viewport change invalidates camera coverage and requests a frame
  ---
  duration_ms: 0.48494
  type: 'test'
  ...
# Subtest: Edit scratch allocation is budgeted and partial allocations are destroyed
ok 5 - Edit scratch allocation is budgeted and partial allocations are destroyed
  ---
  duration_ms: 0.526582
  type: 'test'
  ...
# Subtest: Failed initialization destroys acquired device without secure-context spoofing
ok 6 - Failed initialization destroys acquired device without secure-context spoofing
  ---
  duration_ms: 0.78182
  type: 'test'
  ...
# Subtest: DXF cancellation isolates stale worker callbacks from a replacement request
ok 7 - DXF cancellation isolates stale worker callbacks from a replacement request
  ---
  duration_ms: 1.250436
  type: 'test'
  ...
# Subtest: DXF synchronous postMessage failure terminates the worker and clears pending state
ok 8 - DXF synchronous postMessage failure terminates the worker and clears pending state
  ---
  duration_ms: 0.493352
  type: 'test'
  ...
# Subtest: DXF progress callback failure closes its worker
ok 9 - DXF progress callback failure closes its worker
  ---
  duration_ms: 0.662883
  type: 'test'
  ...
# Subtest: DXF invalid input rejects before worker allocation
ok 10 - DXF invalid input rejects before worker allocation
  ---
  duration_ms: 0.403759
  type: 'test'
  ...
# Subtest: Lexical guard rejects ungrouped logical mix: a || b && c
ok 11 - Lexical guard rejects ungrouped logical mix: a || b && c
  ---
  duration_ms: 1.575448
  type: 'test'
  ...
# Subtest: Lexical guard rejects ungrouped logical mix: a && b || c
ok 12 - Lexical guard rejects ungrouped logical mix: a && b || c
  ---
  duration_ms: 0.145395
  type: 'test'
  ...
# Subtest: Lexical guard rejects ungrouped logical mix: a ||\\n b /* nested /* comment */ end */ && c
ok 13 - Lexical guard rejects ungrouped logical mix: a ||\\n b /* nested /* comment */ end */ && c
  ---
  duration_ms: 0.078346
  type: 'test'
  ...
# Subtest: Lexical guard permits independent logical groups: a || (b && c)
ok 14 - Lexical guard permits independent logical groups: a || (b && c)
  ---
  duration_ms: 0.087439
  type: 'test'
  ...
# Subtest: Lexical guard permits independent logical groups: (a && b) || c
ok 15 - Lexical guard permits independent logical groups: (a && b) || c
  ---
  duration_ms: 0.062944
  type: 'test'
  ...
# Subtest: Lexical guard permits independent logical groups: select(a || b, c && d, true)
ok 16 - Lexical guard permits independent logical groups: select(a || b, c && d, true)
  ---
  duration_ms: 0.070766
  type: 'test'
  ...
# Subtest: Lexical guard permits independent logical groups: a || b; c && d;
ok 17 - Lexical guard permits independent logical groups: a || b; c && d;
  ---
  duration_ms: 0.055703
  type: 'test'
  ...
# Subtest: Lexical guard permits independent logical groups: a && /* || */ b
ok 18 - Lexical guard permits independent logical groups: a && /* || */ b
  ---
  duration_ms: 0.049003
  type: 'test'
  ...
# Subtest: Lexical guard permits independent logical groups: a || b // && c\\n;
ok 19 - Lexical guard permits independent logical groups: a || b // && c\\n;
  ---
  duration_ms: 0.192616
  type: 'test'
  ...
# Subtest: Lexical guard permits independent logical groups: if a || b { if c && d {} }
ok 20 - Lexical guard permits independent logical groups: if a || b { if c && d {} }
  ---
  duration_ms: 0.251563
  type: 'test'
  ...
# Subtest: All assembled sources and provenance hashes are fresh
ok 21 - All assembled sources and provenance hashes are fresh
  ---
  duration_ms: 13.996694
  type: 'test'
  ...
# Subtest: Compiler diagnostics map include lines and fallback locations
ok 22 - Compiler diagnostics map include lines and fallback locations
  ---
  duration_ms: 0.679388
  type: 'test'
  ...
# Subtest: Compiler rejects invalid concurrency before device access
ok 23 - Compiler rejects invalid concurrency before device access
  ---
  duration_ms: 0.785196
  type: 'test'
  ...
# Subtest: Compiler aggregates source errors and never attempts invalid pipelines
ok 24 - Compiler aggregates source errors and never attempts invalid pipelines
  ---
  duration_ms: 1.140212
  type: 'test'
  ...
# Subtest: Compiler pipeline concurrency is bounded and failures retain entry names
ok 25 - Compiler pipeline concurrency is bounded and failures retain entry names
  ---
  duration_ms: 8.681886
  type: 'test'
  ...
# Subtest: ABI is 128 bytes with 65,536-record pages
ok 26 - ABI is 128 bytes with 65,536-record pages
  ---
  duration_ms: 0.943881
  type: 'test'
  ...
# Subtest: IEEE high/low split preserves CAD origins
ok 27 - IEEE high/low split preserves CAD origins
  ---
  duration_ms: 0.183122
  type: 'test'
  ...
# Subtest: RGBA byte ordering is exact
ok 28 - RGBA byte ordering is exact
  ---
  duration_ms: 0.190292
  type: 'test'
  ...
# Subtest: WordArena grows and preserves mixed data
ok 29 - WordArena grows and preserves mixed data
  ---
  duration_ms: 0.177915
  type: 'test'
  ...
# Subtest: Packed line offsets, identity and handle
ok 30 - Packed line offsets, identity and handle
  ---
  duration_ms: 0.715603
  type: 'test'
  ...
# Subtest: Run interning prevents duplicate label serialization
ok 31 - Run interning prevents duplicate label serialization
  ---
  duration_ms: 0.500884
  type: 'test'
  ...
# Subtest: Unknown characters are reported, not hidden
ok 32 - Unknown characters are reported, not hidden
  ---
  duration_ms: 0.61984
  type: 'test'
  ...
# Subtest: Text run cap is enforced
ok 33 - Text run cap is enforced
  ---
  duration_ms: 0.483968
  type: 'test'
  ...
# Subtest: Nested nodes intern parents before children
ok 34 - Nested nodes intern parents before children
  ---
  duration_ms: 0.322669
  type: 'test'
  ...
# Subtest: Page splitting preserves continuous global IDs
ok 35 - Page splitting preserves continuous global IDs
  ---
  duration_ms: 1.007496
  type: 'test'
  ...
# Subtest: Original built-in font is complete for the bundled demo
ok 36 - Original built-in font is complete for the bundled demo
  ---
  duration_ms: 15.056586
  type: 'test'
  ...
# Subtest: TrueType parser rejects malformed and unsupported files
ok 37 - TrueType parser rejects malformed and unsupported files
  ---
  duration_ms: 0.772907
  type: 'test'
  ...
# Subtest: Synthetic million-entity model has no CPU entity array
ok 38 - Synthetic million-entity model has no CPU entity array
  ---
  duration_ms: 16.069309
  type: 'test'
  ...
# Subtest: Synthetic count safety boundaries
ok 39 - Synthetic count safety boundaries
  ---
  duration_ms: 0.164043
  type: 'test'
  ...
# Subtest: ASCII DXF group parser handles BOM and CRLF
ok 40 - ASCII DXF group parser handles BOM and CRLF
  ---
  duration_ms: 0.365223
  type: 'test'
  ...
# Subtest: ASCII malformed groups and nonfinite values fail
ok 41 - ASCII malformed groups and nonfinite values fail
  ---
  duration_ms: 0.343049
  type: 'test'
  ...
# Subtest: Unicode DXF escapes consume exactly four hex digits
ok 42 - Unicode DXF escapes consume exactly four hex digits
  ---
  duration_ms: 0.543166
  type: 'test'
  ...
# Subtest: LINE import, header and handles
ok 43 - LINE import, header and handles
  ---
  duration_ms: 1.394931
  type: 'test'
  ...
# Subtest: UTF-8 DXF bytes preserve Polish codepoints
ok 44 - UTF-8 DXF bytes preserve Polish codepoints
  ---
  duration_ms: 0.719508
  type: 'test'
  ...
# Subtest: Layers, frozen visibility and truecolor survive normalization
ok 45 - Layers, frozen visibility and truecolor survive normalization
  ---
  duration_ms: 0.421946
  type: 'test'
  ...
# Subtest: ACI primary colors follow AutoCAD byte colors
ok 46 - ACI primary colors follow AutoCAD byte colors
  ---
  duration_ms: 0.096594
  type: 'test'
  ...
# Subtest: Paper space excluded explicitly
ok 47 - Paper space excluded explicitly
  ---
  duration_ms: 0.662252
  type: 'test'
  ...
# Subtest: Invisible entities do not enter the GPU model
ok 48 - Invisible entities do not enter the GPU model
  ---
  duration_ms: 0.256731
  type: 'test'
  ...
# Subtest: ARC and ELLIPSE retain analytic parameters
ok 49 - ARC and ELLIPSE retain analytic parameters
  ---
  duration_ms: 0.317802
  type: 'test'
  ...
# Subtest: Large negative arc sweep cannot cause a parser loop
ok 50 - Large negative arc sweep cannot cause a parser loop
  ---
  duration_ms: 0.743543
  type: 'test'
  ...
# Subtest: Bulges are raw GPU path data, not CPU tessellation
ok 51 - Bulges are raw GPU path data, not CPU tessellation
  ---
  duration_ms: 2.124944
  type: 'test'
  ...
# Subtest: Legacy POLYLINE collects VERTEX records
ok 52 - Legacy POLYLINE collects VERTEX records
  ---
  duration_ms: 2.080027
  type: 'test'
  ...
# Subtest: MTEXT width is wrap width, not horizontal font scale
ok 53 - MTEXT width is wrap width, not horizontal font scale
  ---
  duration_ms: 0.588774
  type: 'test'
  ...
# Subtest: INSERT is hierarchical GPU transform data
ok 54 - INSERT is hierarchical GPU transform data
  ---
  duration_ms: 0.544448
  type: 'test'
  ...
# Subtest: MINSERT array offsets do not inherit INSERT scale
ok 55 - MINSERT array offsets do not inherit INSERT scale
  ---
  duration_ms: 0.528445
  type: 'test'
  ...
# Subtest: Cycles in block definitions are reported
ok 56 - Cycles in block definitions are reported
  ---
  duration_ms: 2.460402
  type: 'test'
  ...
# Subtest: Zero OCS normal is explicitly rejected
ok 57 - Zero OCS normal is explicitly rejected
  ---
  duration_ms: 0.549696
  type: 'test'
  ...
# Subtest: OCS is a GPU projection node
ok 58 - OCS is a GPU projection node
  ---
  duration_ms: 0.430399
  type: 'test'
  ...
# Subtest: Rational spline control points and knots are retained
ok 59 - Rational spline control points and knots are retained
  ---
  duration_ms: 2.621862
  type: 'test'
  ...
# Subtest: Nonpositive spline weights reject unsafe rational bounds
ok 60 - Nonpositive spline weights reject unsafe rational bounds
  ---
  duration_ms: 0.689403
  type: 'test'
  ...
# Subtest: Polyline HATCH retains even-odd path boundaries
ok 61 - Polyline HATCH retains even-odd path boundaries
  ---
  duration_ms: 0.880387
  type: 'test'
  ...
# Subtest: Unsupported entities produce diagnostics
ok 62 - Unsupported entities produce diagnostics
  ---
  duration_ms: 0.843301
  type: 'test'
  ...
# Subtest: Import refuses to truncate above an explicit entity cap
ok 63 - Import refuses to truncate above an explicit entity cap
  ---
  duration_ms: 0.515455
  type: 'test'
  ...
# Subtest: Missing EOF is diagnosed while retaining complete records
ok 64 - Missing EOF is diagnosed while retaining complete records
  ---
  duration_ms: 0.443648
  type: 'test'
  ...
# Subtest: Modern binary DXF decodes UTF-8 after ACADVER
ok 65 - Modern binary DXF decodes UTF-8 after ACADVER
  ---
  duration_ms: 1.302604
  type: 'test'
  ...
# Subtest: Legacy narrow group codes are parsed
ok 66 - Legacy narrow group codes are parsed
  ---
  duration_ms: 5.603106
  type: 'test'
  ...
# Subtest: Truncated binary fails cleanly
ok 67 - Truncated binary fails cleanly
  ---
  duration_ms: 0.175551
  type: 'test'
  ...
# Subtest: Annotation history is reversible and does not mutate source
ok 68 - Annotation history is reversible and does not mutate source
  ---
  duration_ms: 2.124253
  type: 'test'
  ...
# Subtest: Annotation JSON validation rejects foreign formats and NaN
ok 69 - Annotation JSON validation rejects foreign formats and NaN
  ---
  duration_ms: 0.18857
  type: 'test'
  ...
# Subtest: Annotation IDs follow base IDs and map back to review groups
ok 70 - Annotation IDs follow base IDs and map back to review groups
  ---
  duration_ms: 8.868904
  type: 'test'
  ...
# Subtest: All annotation types export without silent omissions
ok 71 - All annotation types export without silent omissions
  ---
  duration_ms: 1.09174
  type: 'test'
  ...
# Subtest: Overlay exporter rejects unknown types rather than dropping them
ok 72 - Overlay exporter rejects unknown types rather than dropping them
  ---
  duration_ms: 0.144475
  type: 'test'
  ...
# Subtest: Camera zoom preserves the world point under the pointer
ok 73 - Camera zoom preserves the world point under the pointer
  ---
  duration_ms: 1.015888
  type: 'test'
  ...
# Subtest: Camera pan signs respect CAD Y-up coordinates
ok 74 - Camera pan signs respect CAD Y-up coordinates
  ---
  duration_ms: 0.203832
  type: 'test'
  ...
# Subtest: Malformed raw polylines cannot underflow a GPU traversal
ok 75 - Malformed raw polylines cannot underflow a GPU traversal
  ---
  duration_ms: 0.391892
  type: 'test'
  ...
# Subtest: Nonrepresentable f32 inputs and cyclic nodes are rejected
ok 76 - Nonrepresentable f32 inputs and cyclic nodes are rejected
  ---
  duration_ms: 0.15504
  type: 'test'
  ...
# Subtest: Transient annotation previews do not serialize committed records
ok 77 - Transient annotation previews do not serialize committed records
  ---
  duration_ms: 11.901054
  type: 'test'
  ...
# Subtest: Preview events are distinct from committed model changes
ok 78 - Preview events are distinct from committed model changes
  ---
  duration_ms: 0.409097
  type: 'test'
  ...
# Subtest: GSUB closure preserves dependent lookup outputs
ok 79 - GSUB closure preserves dependent lookup outputs
  ---
  duration_ms: 1.55646
  type: 'test'
  ...
# Subtest: GSUB common profile applies ligatures in lookup order
ok 80 - GSUB common profile applies ligatures in lookup order
  ---
  duration_ms: 1.934121
  type: 'test'
  ...
# Subtest: GSUB ligature priority remains the font rule order
ok 81 - GSUB ligature priority remains the font rule order
  ---
  duration_ms: 0.223231
  type: 'test'
  ...
# Subtest: GSUB never joins ligatures across explicit newlines
ok 82 - GSUB never joins ligatures across explicit newlines
  ---
  duration_ms: 0.157724
  type: 'test'
  ...
# Subtest: GSUB data omits unavailable output glyphs instead of aliasing glyph zero
ok 83 - GSUB data omits unavailable output glyphs instead of aliasing glyph zero
  ---
  duration_ms: 0.174349
  type: 'test'
  ...
# Subtest: GPOS explicit pairs retain negative fractional advances
ok 84 - GPOS explicit pairs retain negative fractional advances
  ---
  duration_ms: 0.378853
  type: 'test'
  ...
# Subtest: GPOS classes remain compact matrices and match implicit class zero
ok 85 - GPOS classes remain compact matrices and match implicit class zero
  ---
  duration_ms: 1.473937
  type: 'test'
  ...
# Subtest: GPOS lookup uses the first matching subtable, not a sum of alternatives
ok 86 - GPOS lookup uses the first matching subtable, not a sum of alternatives
  ---
  duration_ms: 0.17512
  type: 'test'
  ...
# Subtest: Separate GPOS lookups accumulate and legacy override is respected
ok 87 - Separate GPOS lookups accumulate and legacy override is respected
  ---
  duration_ms: 0.320937
  type: 'test'
  ...
# Subtest: Absent OpenType tables produce an empty, well-formed program
ok 88 - Absent OpenType tables produce an empty, well-formed program
  ---
  duration_ms: 0.675954
  type: 'test'
  ...
# Subtest: OpenType parser rejects offsets outside table bounds
ok 89 - OpenType parser rejects offsets outside table bounds
  ---
  duration_ms: 0.320956
  type: 'test'
  ...
# Subtest: GPU run source slots are immutable, separate from shaped glyph slots
ok 90 - GPU run source slots are immutable, separate from shaped glyph slots
  ---
  duration_ms: 2.969367
  type: 'test'
  ...
# Subtest: Exact composition deduplicates repeated coverage before alpha blending
ok 91 - Exact composition deduplicates repeated coverage before alpha blending
  ---
  duration_ms: 0.273956
  type: 'test'
  ...
# Subtest: Exact composition matches opaque painter order at full alpha
ok 92 - Exact composition matches opaque painter order at full alpha
  ---
  duration_ms: 0.14816
  type: 'test'
  ...
# Subtest: Two-ended visible queues have no overlap for partial workgroups
ok 93 - Two-ended visible queues have no overlap for partial workgroups
  ---
  duration_ms: 8.566073
  type: 'test'
  ...
# Subtest: One million small entities require 15,625 raster workgroups, not one million
ok 94 - One million small entities require 15,625 raster workgroups, not one million
  ---
  duration_ms: 20.094945
  type: 'test'
  ...
# Subtest: Uniform first write initializes all 128 bytes; unchanged frames write zero bytes
ok 95 - Uniform first write initializes all 128 bytes; unchanged frames write zero bytes
  ---
  duration_ms: 10.919467
  type: 'test'
  ...
# Subtest: Selection-only and hover-only frames upload four bytes each
ok 96 - Selection-only and hover-only frames upload four bytes each
  ---
  duration_ms: 0.541894
  type: 'test'
  ...
# Subtest: Camera translation updates only its changed aligned uniform span
ok 97 - Camera translation updates only its changed aligned uniform span
  ---
  duration_ms: 2.604305
  type: 'test'
  ...
# Subtest: Grid spacing is updated on zoom, not computed per resolved pixel
ok 98 - Grid spacing is updated on zoom, not computed per resolved pixel
  ---
  duration_ms: 0.267877
  type: 'test'
  ...
# Subtest: Empty overlay frame indicator changes when overlay pages are replaced
ok 99 - Empty overlay frame indicator changes when overlay pages are replaced
  ---
  duration_ms: 0.744985
  type: 'test'
  ...
# Subtest: Color-only edits upload eight bytes and do not fence or rebuild
ok 100 - Color-only edits upload eight bytes and do not fence or rebuild
  ---
  duration_ms: 4.431076
  type: 'test'
  ...
# Subtest: Unchanged patches perform no GPU work
ok 101 - Unchanged patches perform no GPU work
  ---
  duration_ms: 2.273244
  type: 'test'
  ...
# Subtest: Style fast path remains available without spatial-index scratch budget
ok 102 - Style fast path remains available without spatial-index scratch budget
  ---
  duration_ms: 2.739086
  type: 'test'
  ...
# Subtest: Adjacent geometry patches coalesce into one source write
ok 103 - Adjacent geometry patches coalesce into one source write
  ---
  duration_ms: 1.372227
  type: 'test'
  ...
# Subtest: Nonadjacent geometry patches do not upload unchanged intervening records
ok 104 - Nonadjacent geometry patches do not upload unchanged intervening records
  ---
  duration_ms: 1.503051
  type: 'test'
  ...
# Subtest: Invalid later edit does not mutate earlier source records or issue queue writes
ok 105 - Invalid later edit does not mutate earlier source records or issue queue writes
  ---
  duration_ms: 3.778949
  type: 'test'
  ...
# Subtest: Page-local edit invalidation retains independent visibility windows
ok 106 - Page-local edit invalidation retains independent visibility windows
  ---
  duration_ms: 0.227047
  type: 'test'
  ...
# Subtest: Readback pool reuses unmapped buffers and prevents simultaneous reuse
ok 107 - Readback pool reuses unmapped buffers and prevents simultaneous reuse
  ---
  duration_ms: 0.340826
  type: 'test'
  ...
# Subtest: Readback pool unmaps released leases; release is idempotent
ok 108 - Readback pool unmaps released leases; release is idempotent
  ---
  duration_ms: 0.124495
  type: 'test'
  ...
# Subtest: Readback pool rejects overflow while all slots are busy
ok 109 - Readback pool rejects overflow while all slots are busy
  ---
  duration_ms: 0.181279
  type: 'test'
  ...
# Subtest: Readback pool validates size and does not allocate after dispose
ok 110 - Readback pool validates size and does not allocate after dispose
  ---
  duration_ms: 0.160478
  type: 'test'
  ...
# Subtest: Readback pool allocation failure does not publish an invalid lease
ok 111 - Readback pool allocation failure does not publish an invalid lease
  ---
  duration_ms: 0.097725
  type: 'test'
  ...
# Subtest: Compaction reference selection validates its mode
ok 112 - Compaction reference selection validates its mode
  ---
  duration_ms: 0.510587
  type: 'test'
  ...
# Subtest: Frame cache: initial coverage then resolve-only state
ok 113 - Frame cache: initial coverage then resolve-only state
  ---
  duration_ms: 1.515719
  type: 'test'
  ...
# Subtest: Frame cache: annotation revision never invalidates base coverage
ok 114 - Frame cache: annotation revision never invalidates base coverage
  ---
  duration_ms: 0.122882
  type: 'test'
  ...
# Subtest: Frame cache invalidates on camera
ok 115 - Frame cache invalidates on camera
  ---
  duration_ms: 0.178355
  type: 'test'
  ...
# Subtest: Frame cache invalidates on zoom
ok 116 - Frame cache invalidates on zoom
  ---
  duration_ms: 0.102573
  type: 'test'
  ...
# Subtest: Frame cache invalidates on width
ok 117 - Frame cache invalidates on width
  ---
  duration_ms: 0.163603
  type: 'test'
  ...
# Subtest: Frame cache invalidates on height
ok 118 - Frame cache invalidates on height
  ---
  duration_ms: 0.08756
  type: 'test'
  ...
# Subtest: Frame cache invalidates on pixel ratio
ok 119 - Frame cache invalidates on pixel ratio
  ---
  duration_ms: 0.129512
  type: 'test'
  ...
# Subtest: Frame cache invalidates on text quality
ok 120 - Frame cache invalidates on text quality
  ---
  duration_ms: 0.086258
  type: 'test'
  ...
# Subtest: Frame cache invalidates on font
ok 121 - Frame cache invalidates on font
  ---
  duration_ms: 0.285123
  type: 'test'
  ...
# Subtest: Frame cache invalidates on stroke
ok 122 - Frame cache invalidates on stroke
  ---
  duration_ms: 0.317451
  type: 'test'
  ...
# Subtest: Frame cache invalidates on curve tolerance
ok 123 - Frame cache invalidates on curve tolerance
  ---
  duration_ms: 0.143383
  type: 'test'
  ...
# Subtest: Resolve-only color flags preserve coverage
ok 124 - Resolve-only color flags preserve coverage
  ---
  duration_ms: 0.106668
  type: 'test'
  ...
# Subtest: Exact transparency always rebuilds both coverage domains
ok 125 - Exact transparency always rebuilds both coverage domains
  ---
  duration_ms: 0.150925
  type: 'test'
  ...
# Subtest: No-cache benchmark profile rebuilds all geometry
ok 126 - No-cache benchmark profile rebuilds all geometry
  ---
  duration_ms: 0.088411
  type: 'test'
  ...
# Subtest: Visibility guard reuses only conservative pan windows
ok 127 - Visibility guard reuses only conservative pan windows
  ---
  duration_ms: 0.199155
  type: 'test'
  ...
# Subtest: Visibility windows are page-local and invalidatable
ok 128 - Visibility windows are page-local and invalidatable
  ---
  duration_ms: 0.106659
  type: 'test'
  ...
# Subtest: Visibility classification invalidates DPR
ok 129 - Visibility classification invalidates DPR
  ---
  duration_ms: 0.083304
  type: 'test'
  ...
# Subtest: Visibility classification invalidates stroke
ok 130 - Visibility classification invalidates stroke
  ---
  duration_ms: 0.078736
  type: 'test'
  ...
# Subtest: Visibility classification invalidates font
ok 131 - Visibility classification invalidates font
  ---
  duration_ms: 0.063795
  type: 'test'
  ...
# Subtest: Visibility classification invalidates text mode
ok 132 - Visibility classification invalidates text mode
  ---
  duration_ms: 0.056654
  type: 'test'
  ...
# Subtest: Visibility classification invalidates zoom
ok 133 - Visibility classification invalidates zoom
  ---
  duration_ms: 0.049814
  type: 'test'
  ...
# Subtest: Visibility expanded viewport cannot reuse a narrow cached window
ok 134 - Visibility expanded viewport cannot reuse a narrow cached window
  ---
  duration_ms: 0.103874
  type: 'test'
  ...
# Subtest: Invalid guard-band settings fail before GPU submission
ok 135 - Invalid guard-band settings fail before GPU submission
  ---
  duration_ms: 0.24213
  type: 'test'
  ...
# Subtest: Timing summaries use nearest-rank percentiles
ok 136 - Timing summaries use nearest-rank percentiles
  ---
  duration_ms: 0.178936
  type: 'test'
  ...
# Subtest: Timing summaries never invent absent GPU samples
ok 137 - Timing summaries never invent absent GPU samples
  ---
  duration_ms: 0.362628
  type: 'test'
  ...
# Subtest: Adaptive resolution has hysteresis, bounds and cooldown
ok 138 - Adaptive resolution has hysteresis, bounds and cooldown
  ---
  duration_ms: 0.391161
  type: 'test'
  ...
# Subtest: Adaptive resolution excludes invalid and stable samples
ok 139 - Adaptive resolution excludes invalid and stable samples
  ---
  duration_ms: 0.104245
  type: 'test'
  ...
# Subtest: Adaptive resolution validates all numeric configuration
ok 140 - Adaptive resolution validates all numeric configuration
  ---
  duration_ms: 0.20179
  type: 'test'
  ...
# Subtest: Dimension kind 0 remains one GPU-parametric entity
ok 141 - Dimension kind 0 remains one GPU-parametric entity
  ---
  duration_ms: 0.949549
  type: 'test'
  ...
# Subtest: Dimension kind 1 remains one GPU-parametric entity
ok 142 - Dimension kind 1 remains one GPU-parametric entity
  ---
  duration_ms: 0.188319
  type: 'test'
  ...
# Subtest: Dimension kind 2 remains one GPU-parametric entity
ok 143 - Dimension kind 2 remains one GPU-parametric entity
  ---
  duration_ms: 0.120478
  type: 'test'
  ...
# Subtest: Dimension kind 3 remains one GPU-parametric entity
ok 144 - Dimension kind 3 remains one GPU-parametric entity
  ---
  duration_ms: 1.062597
  type: 'test'
  ...
# Subtest: Dimension kind 4 remains one GPU-parametric entity
ok 145 - Dimension kind 4 remains one GPU-parametric entity
  ---
  duration_ms: 0.169822
  type: 'test'
  ...
# Subtest: Dimension kind 5 remains one GPU-parametric entity
ok 146 - Dimension kind 5 remains one GPU-parametric entity
  ---
  duration_ms: 0.129743
  type: 'test'
  ...
# Subtest: Dimension kind 6 remains one GPU-parametric entity
ok 147 - Dimension kind 6 remains one GPU-parametric entity
  ---
  duration_ms: 0.933335
  type: 'test'
  ...
# Subtest: Dimension custom text and suppression are retained
ok 148 - Dimension custom text and suppression are retained
  ---
  duration_ms: 4.630262
  type: 'test'
  ...
# Subtest: Invalid dimensions are rejected transactionally
ok 149 - Invalid dimensions are rejected transactionally
  ---
  duration_ms: 0.461975
  type: 'test'
  ...
# Subtest: Pattern hatch preserves equations rather than expanded hatch strokes
ok 150 - Pattern hatch preserves equations rather than expanded hatch strokes
  ---
  duration_ms: 1.312899
  type: 'test'
  ...
# Subtest: Hatch ABI keeps distinct edge and family tables
ok 151 - Hatch ABI keeps distinct edge and family tables
  ---
  duration_ms: 0.472421
  type: 'test'
  ...
# Subtest: Hatch circular/elliptical boundaries are not CPU-tessellated
ok 152 - Hatch circular/elliptical boundaries are not CPU-tessellated
  ---
  duration_ms: 0.260166
  type: 'test'
  ...
# Subtest: Hatch rational boundary control data survives packing
ok 153 - Hatch rational boundary control data survives packing
  ---
  duration_ms: 2.464127
  type: 'test'
  ...
# Subtest: Invalid hatch edge/family never corrupts following IDs
ok 154 - Invalid hatch edge/family never corrupts following IDs
  ---
  duration_ms: 2.229209
  type: 'test'
  ...
# Subtest: Gradient hatches fail explicitly rather than claiming solid equivalence
ok 155 - Gradient hatches fail explicitly rather than claiming solid equivalence
  ---
  duration_ms: 0.316449
  type: 'test'
  ...
# Subtest: Hatch malformed counts and missing definitions fail closed
ok 156 - Hatch malformed counts and missing definitions fail closed
  ---
  duration_ms: 0.159867
  type: 'test'
  ...
# Subtest: DXF native dimensions regenerate without requiring a cached anonymous block
ok 157 - DXF native dimensions regenerate without requiring a cached anonymous block
  ---
  duration_ms: 1.615208
  type: 'test'
  ...
# Subtest: Preserved ASCII source includes unknown application records unchanged
ok 158 - Preserved ASCII source includes unknown application records unchanged
  ---
  duration_ms: 0.770303
  type: 'test'
  ...
# Subtest: Preserved input bytes are independently retained and transferred once
ok 159 - Preserved input bytes are independently retained and transferred once
  ---
  duration_ms: 0.753839
  type: 'test'
  ...
# Subtest: Source preservation is opt-in and not advertised as an edited rewrite
ok 160 - Source preservation is opt-in and not advertised as an edited rewrite
  ---
  duration_ms: 0.400113
  type: 'test'
  ...
# Subtest: Paper/model/all DXF import filters are explicit
ok 161 - Paper/model/all DXF import filters are explicit
  ---
  duration_ms: 1.164468
  type: 'test'
  ...
# Subtest: SHP compiles to bytecode and capacity, not CPU glyph geometry
ok 162 - SHP compiles to bytecode and capacity, not CPU glyph geometry
  ---
  duration_ms: 1.187583
  type: 'test'
  ...
# Subtest: SHP text supplied as a byte buffer retains its actual format
ok 163 - SHP text supplied as a byte buffer retains its actual format
  ---
  duration_ms: 0.2831
  type: 'test'
  ...
# Subtest: Stroke decoder preserves vertical-only compound instruction scope
ok 164 - Stroke decoder preserves vertical-only compound instruction scope
  ---
  duration_ms: 0.14838
  type: 'test'
  ...
# Subtest: Stroke decoder expands multiple bulge records without geometry evaluation
ok 165 - Stroke decoder expands multiple bulge records without geometry evaluation
  ---
  duration_ms: 0.096603
  type: 'test'
  ...
# Subtest: Stroke packed vectors retain length/direction parameters
ok 166 - Stroke packed vectors retain length/direction parameters
  ---
  duration_ms: 0.110634
  type: 'test'
  ...
# Subtest: SHX subshape call cycles and missing targets are rejected
ok 167 - SHX subshape call cycles and missing targets are rejected
  ---
  duration_ms: 0.29618
  type: 'test'
  ...
# Subtest: Stroke capacity follows subshape calls rather than record count
ok 168 - Stroke capacity follows subshape calls rather than record count
  ---
  duration_ms: 0.252845
  type: 'test'
  ...
# Subtest: Stroke parser rejects unsupported BIGFONT and malformed instructions
ok 169 - Stroke parser rejects unsupported BIGFONT and malformed instructions
  ---
  duration_ms: 0.153428
  type: 'test'
  ...
# Subtest: Binary SHX shape index and signed displacement decode correctly
ok 170 - Binary SHX shape index and signed displacement decode correctly
  ---
  duration_ms: 0.529646
  type: 'test'
  ...
# Subtest: Binary SHX validates its terminal marker
ok 171 - Binary SHX validates its terminal marker
  ---
  duration_ms: 0.286034
  type: 'test'
  ...
# Subtest: Glyph atlas supports configurable cells with balanced power-of-two columns
ok 172 - Glyph atlas supports configurable cells with balanced power-of-two columns
  ---
  duration_ms: 0.580502
  type: 'test'
  ...
# Subtest: Font edge arenas reserve GPU-compiled slots without a nested expansion array
ok 173 - Font edge arenas reserve GPU-compiled slots without a nested expansion array
  ---
  duration_ms: 0.120048
  type: 'test'
  ...
# Subtest: Failed long text record rolls back glyph-run and entity allocation
ok 174 - Failed long text record rolls back glyph-run and entity allocation
  ---
  duration_ms: 0.688241
  type: 'test'
  ...
# Subtest: Rational spline knot ordering and weight lengths are validated
ok 175 - Rational spline knot ordering and weight lengths are validated
  ---
  duration_ms: 0.493081
  type: 'test'
  ...
# Subtest: Fixed-record edits validate every patch before writing GPU memory
ok 176 - Fixed-record edits validate every patch before writing GPU memory
  ---
  duration_ms: 3.249603
  type: 'test'
  ...
# Subtest: An invalid first entity leaves no empty dispatch page
ok 177 - An invalid first entity leaves no empty dispatch page
  ---
  duration_ms: 1.026102
  type: 'test'
  ...
# Subtest: Feature gallery has real hatch and dimension records, not presentation images
ok 178 - Feature gallery has real hatch and dimension records, not presentation images
  ---
  duration_ms: 144.842801
  type: 'test'
  ...
1..178
# tests 178
# suites 0
# pass 178
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 427.430389
