test(gfql): shape registry fed by the specialization tables + route harness - #2061
Conversation
083078d to
511a36f
Compare
53bb8ce to
237ceaf
Compare
3213f7d to
21f662c
Compare
|
GPU receipt (dgx-spark, graphistry/test-rapids-official:26.02-gfql-polars, cudf 26.02.01 / cupy 13.6.0 / polars 1.35.2, safe_run, TEST_CUDF=1; suites test_chain.py, test_hop.py, test_chain_alias_column_collision.py, tests/compute/gfql/**) on the stack head 676232a (#2062, which contains #2055, #2056, #2054 and #2061): 13383 passed / 93 failed / 55 skipped / 44 xfailed / 4 xpassed. The 93 failures are exactly master 86de0f5's set in the same image (13227 passed / 93 failed: the polars-gpu fused grouped-aggregate lane and strictness tests, #2064): set difference empty, zero branch-specific failures. |
|
CI receipt at 21f662c: 82 check-runs, all success (incl. tck-gfql, test-polars ×6 with the harness in the lane and the coverage audit, gfql-benchmarks, the non-blocking gfql-routes-off ledger matrix). GPU receipt on the stack head above. Marking ready. |
…arness Each specialization's test module registers the shape table it already owns (routes corpus, the six test_chain tables, the alias-collision matrix) with its frames and defect-class tags. The harness tries every registered shape against every chain route whose admission predicate admits it and pins that the lane serves, that the answer matches the same engine's general path on values, and that node/edge sets match the pandas general path. A lane that declines an admitted shape is recorded as an expected failure (the attenuation ledger); filed divergences are strict expected failures keyed by tag. The pandas bypass table's prune shapes surface #2053 on the polars route. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QztW7jYsDd66e8rb8pJNQA
…gement pins marked The route harness mentions polars, so it runs in bin/test-polars.sh (lane completeness pin). Six more tests that assert a native-fast serve (hits == 1, served spies) carry the route_engaged marker, so the routes-off replay for native-fast reports result divergences only. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QztW7jYsDd66e8rb8pJNQA
…he route_engaged marker Replay at the harness head (scratchpad ledger kept under reviews/2054/): every remaining single-route id was an engagement pin (a served spy, a trace or a lane-specific explain step) or the #2058 dtype class; the all-off residue adds four combined-route engagement pins and the #2034 duplicate-id case. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QztW7jYsDd66e8rb8pJNQA
ae307f6 to
70ddc36
Compare
21f662c to
00002b8
Compare
|
GPU receipt (dgx-spark, graphistry/test-rapids-official:26.02-gfql-polars, cudf 26.02.01 / polars 1.35.2, safe_run, TEST_CUDF=1; suites test_chain.py, test_hop.py, test_chain_alias_column_collision.py, tests/compute/gfql/**) on the restacked stack head a54ac4b (#2065, containing #2055 rework, #2056, #2054, #2061, #2062): 13386 passed / 95 failed / 38 xfailed / 4 xpassed. 93 of the failures are master 86de0f5's polars-gpu fused-lane set (#2064, fixed separately in #2066). The other 2 are strict XPASS of the #2043 prune_to_endpoints markers on cuDF 26.02: the prune shapes now agree fast-vs-full on this stack (the #2062 closure fix removed the divergence), so #2062 drops that marker in a follow-up commit (tree otherwise identical; #2065 restacked). |
00002b8
into
refactor/gfql-route-admission-predicates
Stacked on #2054. The route harness the review of #2054 asked for: one registered input is tried against every chain route whose admission predicate admits it, so the specializations' own test tables amplify each other.
Registry (
graphistry/tests/compute/gfql/routes/registry.py): each specialization's test module registers the shape table it already owns with its frames and defect-class tags;register(...)returns the table unchanged. Registered today: the routes corpus (22), the sixtest_chain.pytables (44), the alias-collision matrix (14): 80 shapes.Harness (
tests/compute/gfql/routes/test_route_harness.py), per admitted cell (native-fast on pandas/cuDF, polars-plain, polars-seeded): the lane serves; the answer matches the same engine's general path on node/edge values (every route declined through the sharedroutes_offswitch); node/edge sets match the pandas general path. A lane that declines an admitted shape is recorded as an expected failure (the attenuation ledger: the polars seeded lane declines the 10 alias-collision shapes its predicate admits → #2063, measured at 29 ms vs 1.9 ms pandas on the SNB sentinel); a serve-ratio pin fails when a lane declines most of what it admits. Filed divergences are strict expected failures keyed by tag; the pandas_BYPASS_SHAPESprune rows surfaced #2053 on the polars route this way (fixed in #2065, stacked above).Engagement marks. The 7-mode routes-off replay (ledger table on #2054, files under
reviews/2054/) classified every remaining failing id; the tests that assert a route serves now carry@pytest.mark.route_engaged(...), so the replay reports result divergences only. What remained were #2058 (fixed in #2062), #2059 (typed decline) and #2034 (contract question posted).Local: 382 pass / 13 xfail on routes + test_chain + collision (pandas, cuDF, polars); broad CPU 12592 pass; cuDF 1390 pass. GPU receipt on the stack head below. tck-gfql per-route ledger: graphistry/tck-gfql#196.
🤖 Generated with Claude Code
https://claude.ai/code/session_01QztW7jYsDd66e8rb8pJNQA