Skip to content

test(gfql): shape registry fed by the specialization tables + route harness - #2061

Merged
lmeyerov merged 3 commits into
refactor/gfql-route-admission-predicatesfrom
test/gfql-route-harness
Sep 6, 2026
Merged

test(gfql): shape registry fed by the specialization tables + route harness#2061
lmeyerov merged 3 commits into
refactor/gfql-route-admission-predicatesfrom
test/gfql-route-harness

Conversation

@lmeyerov

@lmeyerov lmeyerov commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

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 six test_chain.py tables (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 shared routes_off switch); 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_SHAPES prune 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

@lmeyerov

lmeyerov commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

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.

@lmeyerov

lmeyerov commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

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.

@lmeyerov
lmeyerov marked this pull request as ready for review September 6, 2026 03:06
lmeyerov and others added 3 commits September 6, 2026 04:57
…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
@lmeyerov

lmeyerov commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

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).

@lmeyerov

lmeyerov commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

CI receipt at 00002b8 (restacked on the #2055 rework): 82 check-runs, all success. GPU receipt on the stack head above.

@lmeyerov
lmeyerov merged commit 00002b8 into refactor/gfql-route-admission-predicates Sep 6, 2026
83 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant