Skip to content

circo parity dashboard

Differential survey of graphviz-ts circo xdot output vs the native dot -K circo -Txdot oracle over the dot-track SVG-conformant corpus set (semantic draw-op comparison at ±0.01 — see test/golden/compare-xdot.ts; per docs/conformance.md, not byte equality). Regenerate: npx tsx test/corpus/engine-walk.ts circo && npx tsx test/corpus/parity-report.ts.

Summary

  • Surveyed: 761 (generated 2026-07-14T23:57:04.534Z)
  • pass: 745 (97.9%) · diverged (tracked): 0 · accepted (documented, won't-fix): 3
  • oracle-error: 13 · port-error: 0 · timeout: 0

Accepted deltas (3) — documented, not chased

Deliberate, root-caused differences we have chosen not to make conformant. Source of truth: test/corpus/accepted-divergences-engines.json; rationale in Known divergences. Excluded from the diverged table below.

id#diffsclassboundref
241_041A941 draw-op diffs; Delta~0.2pt on edge 1->2's routed bezier (unfilled_bezier[1]: 221.92 vs 222.12)known-divergences.md#a9-engine-track-twopi-circo
2475_2989A9989 draw-op diffs confined to one 28-node 590_ component (18 nodes move, max 296.7pt; 10744/10762 nodes bit-identical). Mechanism: circo getRotation->closestNode (circpos.c:73-92) cocircular hypot tie — at the bit-identical placement offset the two candidate distances round 2 ULP apart between V8 Math.hypot and Apple libm, flipping the strict < and rotating/reflecting the sub-block ~20deg. Block tree, circle order, and all centerAngles bit-identical; CR-hypot policy previously refuted. Repro: .agent-notes/circo-2475-590-repro.dot; RCA: .agent-notes/circo-b81-2475-rca.md.known-divergences.md#a9-engine-track-twopi-circo
windows-tree10A910 draw-op diffs on one fan edge (node2->node8): circo trig places node2.y a single ULP above node8.y around the symmetric value 18.0 (18.0000000000000320 vs 18.0), flipping closestSide's dyna head-port TOP/BOTTOM at the exact tie; node boxes and all other edges bit-identical.known-divergences.md#a9-engine-track-twopi-circo

Diverged (0)

(none)

Errors and timeouts (13)

idstatusmessage
1447oracle-errorCommand failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K circo -Txdot /Users/scottseely/git/graphviz/tests/1447.dot
1718oracle-errorspawnSync /Users/scottseely/git/graphviz/build/cmd/dot/dot ETIMEDOUT
1879oracle-errorCommand failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K circo -Txdot /Users/scottseely/git/graphviz/tests/1879.dot
1880oracle-errorCommand failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K circo -Txdot /Users/scottseely/git/graphviz/tests/1880.dot
2095_1oracle-errorspawnSync /Users/scottseely/git/graphviz/build/cmd/dot/dot ETIMEDOUT
2108oracle-errorspawnSync /Users/scottseely/git/graphviz/build/cmd/dot/dot ETIMEDOUT
2222oracle-errorspawnSync /Users/scottseely/git/graphviz/build/cmd/dot/dot ETIMEDOUT
2343oracle-errorspawnSync /Users/scottseely/git/graphviz/build/cmd/dot/dot ETIMEDOUT
2516oracle-errorCommand failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K circo -Txdot /Users/scottseely/git/graphviz/tests/2516.dot
2619oracle-errorCommand failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K circo -Txdot /Users/scottseely/git/graphviz/tests/2619.dot
2619_1oracle-errorCommand failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K circo -Txdot /Users/scottseely/git/graphviz/tests/2619_1.dot
2619_2oracle-errorCommand failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K circo -Txdot /Users/scottseely/git/graphviz/tests/2619_2.dot
graphs-b103oracle-errorspawnSync /Users/scottseely/git/graphviz/build/cmd/dot/dot ETIMEDOUT

oracle errors: 10 native-crash (documented, excluded) / 5 timeout-flake (excluded this run, note to retry) Passing ids (745) are omitted for brevity — the full roster is in parity-circo.json.