sfdp parity dashboard
Differential survey of graphviz-ts sfdp xdot output vs the native dot -K sfdp -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 sfdp && npx tsx test/corpus/parity-report.ts.
Summary
- Surveyed: 762 (generated 2026-07-17T15:52:41.936Z)
- pass: 518 (68.0%) · diverged (tracked): 52 · accepted (documented, won't-fix): 0 · accepted (A1-drift class): 184
- oracle-error: 7 · port-error: 1 · 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.
- A1-drift: 184 members — full per-id evidence in
attribution-sfdp.json. Rationale: Known divergences.
Diverged (52)
| id | size | #diffs | firstDiff |
|---|---|---|---|
2475_2 | 641284 | 305599 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 14372 vs 14375.01 |
1652 | 240391 | 114202 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 955.45 vs 958.43 |
2095_1 | 105083 | 55782 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 3321.65 vs 3295.8 |
linux.x86-root_circo | 313168 | 35482 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1096.38 vs 1105.16 |
linux.x86-root_twopi | 287907 | 35482 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1096.38 vs 1105.16 |
2470 | 734358 | 20258 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 9388.23 vs 7898.3 |
linux.i386-b29 | 136753 | 12108 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1523.56 vs 1473.78 |
graphs-b29 | 62931 | 12087 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1468.26 vs 1420.3 |
share-b106 | 92301 | 8679 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 2090.2 vs 1783.03 |
graphs-b106 | 48933 | 8626 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 2089.31 vs 1781.01 |
linux.i386-b106 | 92005 | 8619 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 2089.88 vs 1782.23 |
2095 | 4865 | 6014 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 509.02 vs 508.15 |
windows-pgram | 11001 | 3095 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1020 vs 981 |
graphs-pgram | 2614 | 3070 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1009.6 vs 937.6 |
share-pgram | 10942 | 3047 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1002 vs 962 |
linux.i386-crazy | 10433 | 1708 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1204.87 vs 1207.88 |
windows-crazy | 10433 | 1697 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1206.55 vs 1209.57 |
share-crazy | 10433 | 1690 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1204.02 vs 1207.03 |
graphs-crazy | 5556 | 1657 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1048.62 vs 1051.14 |
graphs-lsunix1 | 1456 | 1191 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 533.89 vs 535.59 |
graphs-lsunix2 | 1456 | 1191 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 533.89 vs 535.59 |
graphs-lsunix3 | 1465 | 1191 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 533.89 vs 535.59 |
graphs-unix | 1433 | 1191 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 533.89 vs 535.59 |
share-unix | 6603 | 1191 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 533.89 vs 535.59 |
windows-unix | 6603 | 1191 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 533.89 vs 535.59 |
nshare-arrows_dot | 7235 | 1136 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 474.65 vs 486.24 |
graphs-trapeziumlr | 1484 | 971 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 876.66 vs 892.52 |
share-trapeziumlr | 7233 | 971 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 946.42 vs 964.29 |
windows-trapeziumlr | 7229 | 971 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 946.12 vs 963.98 |
2476 | 3653 | 687 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1753.09 vs 1749.03 |
graphs-size | 1706 | 677 | edge:1 BSD->2 BSD#0 _draw_ edge:1 BSD->2 BSD#0/_draw_/op[1].unfilled_bezier[1]: 534.77 vs 535.28 |
graphs-unix2 | 1719 | 677 | edge:1 BSD->2 BSD#0 _draw_ edge:1 BSD->2 BSD#0/_draw_/op[1].unfilled_bezier[1]: 534.77 vs 535.28 |
graphs-unix2k | 1719 | 677 | edge:1 BSD->2 BSD#0 _draw_ edge:1 BSD->2 BSD#0/_draw_/op[1].unfilled_bezier[1]: 534.77 vs 535.28 |
graphs-weight | 1720 | 677 | edge:1 BSD->2 BSD#0 _draw_ edge:1 BSD->2 BSD#0/_draw_/op[1].unfilled_bezier[1]: 534.77 vs 535.28 |
share-unix2 | 7421 | 677 | edge:1 BSD->2 BSD#0 _draw_ edge:1 BSD->2 BSD#0/_draw_/op[1].unfilled_bezier[1]: 534.77 vs 535.28 |
share-unix2k | 7421 | 677 | edge:1 BSD->2 BSD#0 _draw_ edge:1 BSD->2 BSD#0/_draw_/op[1].unfilled_bezier[1]: 534.77 vs 535.28 |
windows-unix2 | 7421 | 677 | edge:1 BSD->2 BSD#0 _draw_ edge:1 BSD->2 BSD#0/_draw_/op[1].unfilled_bezier[1]: 534.77 vs 535.28 |
windows-unix2k | 7421 | 677 | edge:1 BSD->2 BSD#0 _draw_ edge:1 BSD->2 BSD#0/_draw_/op[1].unfilled_bezier[1]: 534.77 vs 535.28 |
1855 | 1335 | 665 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 592.32 vs 595.62 |
1436 | 2599 | 601 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 1833.4 vs 1973.4 |
linux.x86-rankdir_dot | 12792 | 463 | edge:2.8 BSD->2.9 BSD#0 _draw_ edge:2.8 BSD->2.9 BSD#0/_draw_/op[1].unfilled_bezier[0]: 1844.07 vs 1843.47 |
linux.x86-rankdir_dot1 | 12673 | 463 | edge:2.8 BSD->2.9 BSD#0 _draw_ edge:2.8 BSD->2.9 BSD#0/_draw_/op[1].unfilled_bezier[0]: 1844.07 vs 1843.47 |
linux.x86-rankdir_dot2 | 12815 | 463 | edge:2.8 BSD->2.9 BSD#0 _draw_ edge:2.8 BSD->2.9 BSD#0/_draw_/op[1].unfilled_bezier[0]: 1844.07 vs 1843.47 |
nshare-rankdir_dot | 12803 | 449 | edge:2.8 BSD->2.9 BSD#0 _draw_ edge:2.8 BSD->2.9 BSD#0/_draw_/op[1].unfilled_bezier[0]: 1897.17 vs 1896.56 |
nshare-rankdir_dot1 | 12675 | 449 | edge:2.8 BSD->2.9 BSD#0 _draw_ edge:2.8 BSD->2.9 BSD#0/_draw_/op[1].unfilled_bezier[0]: 1897.17 vs 1896.56 |
nshare-rankdir_dot2 | 12795 | 449 | edge:2.8 BSD->2.9 BSD#0 _draw_ edge:2.8 BSD->2.9 BSD#0/_draw_/op[1].unfilled_bezier[0]: 1897.17 vs 1896.56 |
42 | 11978 | 200 | edge:0->3#0 _draw_ edge:0->3#0/_draw_[opCount]: 3 vs 6 |
2521_1 | 1062 | 60 | edge:TL 1 event 2->TL 1 event 3#0 _draw_ edge:TL 1 event 2->TL 1 event 3#0/_draw_/op[1].unfilled_bezier[5]: 120.17 vs 120.76 |
2168 | 70 | 57 | [graph] _draw_ [graph]/_draw_/op[2].filled_polygon[3]: 48.58 vs 42.27 |
241_0 | 578 | 20 | edge:1->2#0 _draw_ edge:1->2#0/_draw_/op[1].unfilled_bezier[ptCount]: 8 vs 20 |
2184 | 393 | 18 | edge:x21->x22#0 _draw_ edge:x21->x22#0/_draw_/op[1].unfilled_bezier[0]: 271.17 vs 240.17 |
2639 | 170 | 18 | edge:i->j#0 _draw_ edge:i->j#0/_draw_/op[1].unfilled_bezier[1]: 84 vs 51 |
Errors and timeouts (8)
| id | status | message |
|---|---|---|
1879 | oracle-error | Command failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K sfdp -Txdot /Users/scottseely/git/graphviz/tests/1879.dot |
2108 | oracle-error | spawnSync /Users/scottseely/git/graphviz/build/cmd/dot/dot ETIMEDOUT |
2222 | oracle-error | spawnSync /Users/scottseely/git/graphviz/build/cmd/dot/dot ETIMEDOUT |
2516 | oracle-error | Command failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K sfdp -Txdot /Users/scottseely/git/graphviz/tests/2516.dot |
2619 | oracle-error | Command failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K sfdp -Txdot /Users/scottseely/git/graphviz/tests/2619.dot |
2619_1 | oracle-error | Command failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K sfdp -Txdot /Users/scottseely/git/graphviz/tests/2619_1.dot |
2619_2 | oracle-error | Command failed: /Users/scottseely/git/graphviz/build/cmd/dot/dot -K sfdp -Txdot /Users/scottseely/git/graphviz/tests/2619_2.dot |
2556 | port-error | armPow: argument outside the ported normal-finite fast path |
oracle errors: 7 native-crash (documented, excluded) / 0 timeout-flake (excluded this run, note to retry) Passing ids (518) are omitted for brevity — the full roster is in parity-sfdp.json.