Skip to content

neato parity dashboard

Differential survey of graphviz-ts neato xdot output vs the native dot -K neato -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 neato && npx tsx test/corpus/parity-report.ts.

Summary

  • Surveyed: 761 (generated 2026-07-14T22:25:17.634Z)
  • pass: 409 (53.7%) · diverged (tracked): 37 · accepted (documented, won't-fix): 0 · accepted (A1-drift class): 308
  • oracle-error: 7 · port-error: 0 · timeout: 0

Accepted deltas (0) — 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.

(none in this corpus)

Accepted class: A1-drift — computed, not enumerated

Membership is computed at report time from the injection-attribution harness output (D2) — every diverged id whose native pre-routing position exonerates it (verdict: drift-exonerated) is subtracted from the Diverged table below and counted in Summary; an id that starts passing outright leaves the class silently on the next report regen.

Diverged (37)

idsize#diffsfirstDiff
2239480903838[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1676.96 vs 1702.77
windows-pgram110013174[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 542.16 vs 522
share-pgram109423162[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 542.16 vs 522
linux.x86-rankdir_dot2128151919[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 892.96 vs 998.83
nshare-rankdir_dot2127951919[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 892.96 vs 998.71
linux.x86-rankdir_dot127921918[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 892.96 vs 998.69
nshare-rankdir_dot128031918[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 892.96 vs 998.71
nshare-rankdir_dot1126751918[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 892.96 vs 830.43
linux.i386-crazy104331915[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 977.46 vs 842.92
linux.x86-rankdir_dot1126731915[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 892.96 vs 829.92
windows-crazy104331907[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 977.46 vs 838.23
share-crazy104331902[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 977.46 vs 838.05
windows-unix274211607[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 563.43 vs 708.98
windows-unix2k74211607[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 563.43 vs 708.98
share-unix274211606[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 563.43 vs 700.5
share-unix2k74211606[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 563.43 vs 700.5
linux.x86-weight_dot92781605[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 834.83 vs 651.75
nshare-weight_dot93911605[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 834.83 vs 651.97
linux.x86-dotsplines_dot87411604[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 834.83 vs 708.27
linux.x86-dotsplines_dot192061604[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 834.83 vs 708.27
nshare-dotsplines_dot88361602[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 834.83 vs 709.14
nshare-dotsplines_dot193321602[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 834.83 vs 709.14
windows-unix66031424[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 676.93 vs 528.79
share-unix66031422[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 676.93 vs 528.32
219363991085[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1683.89 vs 1682.42
2470734358682edge:n100->n99#0 _ldraw_ edge:n100->n99#0/_ldraw_/op[2].text[0]: 6930.71 vs 6852.93
windows-nhg926196[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 118.37 vs 120.18
share-nhg938194[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 118.37 vs 120.18
graphs-pgram261454[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 577.54 vs 597.54
graphs-b941050340edge:h212_202_184_169->h130_75_118_14_p1433#0 _draw_ edge:h212_202_184_169->h130_75_118_14_p1433#0/_draw_/op[1].unfilled_bezier[0]: 579.45 vs 453.45
199061017edge:0⋯7 ❰A❱->0⋯1 'a'#0 _draw_ edge:0⋯7 ❰A❱->0⋯1 'a'#0/_draw_/op[1].unfilled_bezier[ptCount]: 14 vs 8
241_057813edge:1->6#0 _draw_ edge:1->6#0/_draw_/op[1].unfilled_bezier[ptCount]: 14 vs 8
28016518edge:a->b#0 _hldraw_ edge:a->b#0/_hldraw_/op[2].text[0]: 330.01 vs 356.44
graphs-b3387[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[4]: 188.58 vs 199.58
graphs-b1173387[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[4]: 188.58 vs 199.58
graphs-nhg3397[graph] _draw_ [graph]/_draw_/op[2].filled_polygon[4]: 188.58 vs 199.58
247636532edge:s_EnergeticFinch.s_MotionlessCobra->s_EnergeticFinch.s_EmbarrassedMeerkat#0 _ldraw_ edge:s_EnergeticFinch.s_MotionlessCobra->s_EnergeticFinch.s_EmbarrassedMeerkat#0/_ldraw_/op[2].text[1]: 648.25 vs 664.99

Errors and timeouts (7)

idstatusmessage
1879oracle-errorCommand failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K neato -Txdot /Users/scottseely/git/graphviz/tests/1879.dot
2108oracle-errorspawnSync /Users/scottseely/git/graphviz/build/cmd/dot/dot ETIMEDOUT
2222oracle-errorspawnSync /Users/scottseely/git/graphviz/build/cmd/dot/dot ETIMEDOUT
2516oracle-errorCommand failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K neato -Txdot /Users/scottseely/git/graphviz/tests/2516.dot
2619oracle-errorCommand failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K neato -Txdot /Users/scottseely/git/graphviz/tests/2619.dot
2619_1oracle-errorCommand failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K neato -Txdot /Users/scottseely/git/graphviz/tests/2619_1.dot
2619_2oracle-errorCommand failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K neato -Txdot /Users/scottseely/git/graphviz/tests/2619_2.dot

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