Skip to content

Parity overview

Cross-engine conformance summary of graphviz-ts vs the native Graphviz oracle, one row per track (engine × comparison surface). A report, not a gate. Regenerate: npx tsx test/corpus/parity-report.ts (after refreshing the per-track surveys it reads).

conformant / pass is the ±0.01 deterministic-tolerance verdict per docs/conformance.md — numeric payloads agree within tolerance and non-numeric content is exactly equal — not byte equality. errors = oracle-error + port-error/errored + timeout (excluded from scoring). accepted = documented won't-fix deltas (0 for engines without an acceptance list).

Tracks

tracksurveyedconformant / passdivergedacceptederrorspass %
dot (SVG)7887620161096.7%
dot (xdot)761761000100.0%
dot (json)76175902099.7%
circo (xdot)761745031397.9%
twopi (xdot)761739014897.1%
osage (xdot)76175006598.6%
patchwork (xdot)76175600599.3%
dot (imagemap)76175500699.2%

Iterative engines (±0.5 characterization)

neato/fdp/sfdp are iterative force-directed solvers whose results depend on floating-point accumulation (FMA, Math.pow, libm) that JavaScript cannot reproduce bit-for-bit — accepted class A1. These rows are compared at a ±0.5pt tolerance to characterize behavior, not to gate byte-fidelity; do not read their pass % against the deterministic bar above.

tracksurveyedconformant / passdivergedacceptederrorspass %
neato (xdot)76140937308753.7%
fdp (xdot)761600191261678.8%
sfdp (xdot)76251852184868.0%

Dot output formats (SVG · xdot · json)

How faithfully the port renders each input across all three deterministic dot outputs, joined by id. xdot and json survey the SVG-conformant roster, so this is the intersection (761 inputs); an input is conformant in all three only when every format agrees with the oracle within tolerance.

status across SVG · xdot · jsoncount%
conformant in all three75999.7%
accepted (won't-fix) in ≥1, diverged in none20.3%
diverged / errored in ≥100.0%

Per-format status of the ids not conformant in all three:

idSVGxdotjson
share-Latin1conformantconformantaccepted
windows-Latin1conformantconformantaccepted

Goldens

211 pinned golden inputs (test/golden/manifest.json), by engine:

enginegoldens
dot160
neato8
fdp7
sfdp6
circo8
twopi8
osage7
patchwork7

The golden xdot suite gates these in CI (test/golden/xdot-suite.test.ts).

Per-track dashboards