Conformance plan
NUIF conformance is split into independently testable profiles.
Required suites
model— stable IDs, containment, graph references, cycle rules.canonicalization— deterministic text/binary representation and hashes.extensions— used/required negotiation and opaque preservation.layout— authored→resolved fixtures across viewport/context matrices.render— normative geometry/paint/text behavior with declared tolerances.operations— patch replay, inversion, preconditions and deterministic results.merge— three-way semantic conflicts and move/reorder cases.provenance— correspondence retention and fidelity diagnostics.adapter— import/export loss reports and foreign-extension preservation.security— parser depth/size limits, malicious assets and renderer budgets.independent-reproduction— a non-reference package parses/writes the fixture and independently reproduces resolved layout, raster and fidelity.
Test techniques
- golden structural fixtures;
- property-based tests for operation sequences;
- fuzz parsers/codecs and path geometry;
- differential layout checks against browser/Taffy where semantics match;
- metamorphic tests such as encode→decode→encode stability;
- deterministic operation replay;
- visual snapshots with perceptual thresholds only where exact pixels are not normative.
A test result must include implementation version, capability profile, fixture ID and evaluation context. Foreign-reference results additionally include exact oracle versions, generator source revision, raw per-engine observations, a fixture-local measured bound and typed classifications for every divergence.
The implemented adapter suite covers nuif-html-css-0, the separately declared nuif-html-css-v0 responsive-card profile, nuif-svg-0 and nuif-dtcg-scalar-0 with exact export/import, byte-local synchronization and property-attributed rejection. Arbitrary web or SVG source, non-scalar DTCG and other adapter targets remain non-conformant until separately declared profiles pass.
The implemented independent-reproduction suite covers the complete v0 fixture in canonical text and the declared profile-0 layout/render subset. The Python standard-library implementation computes its own boxes and pixels, and the harness compares decoded RGBA so PNG encoder behavior is not mistaken for render divergence. This is an in-repository mechanical reproduction, not evidence of external implementation provenance or standards adoption.