You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 439dcd9
Browse filesBrowse the repository at this point in the historyBrowse files
test(level1): assert candidate membership and account for every rejection
Level 1 declared one expected plan per query while its stated purpose was to
enumerate the candidate inventory before pricing. A single expected shape is a
selection assertion in structural clothing, and four of the ten queries carried
no expectation at all.
Replace it with a membership contract. Each query declares the shapes the
inventory must expose and how this fixture resolves them: MustBind, or
MustReject with a named policy reason. The heap families Planner exposes for
spatial-topk and topk-rate are now required to be present *and* refused, which
is a positive assertion about the inventory rather than silence about it.
Separate policy refusals from defects. A rejection that is neither a declared
policy reason nor a recorded defect now fails the test. Three candidates fail
with "Planner logical fragment does not match any original query subtree" and
one with a schema incompatibility; main is green on these paths, so each is a
regression introduced inside the #737 -> #728 stack. They are listed in
KNOWN_BINDING_DEFECTS with exact occurrence counts, so a new instance fails and
a fixed one forces its entry to be deleted. All must be gone before #775
installs and executes these candidates.
Stop committing derived plans. candidates/ and ensembles/ were ~94k lines, are
fully reproducible from the test, and every identity in them changes when the
Planner pin moves; CI already uploads them on every run. Only the per-query
admission reports stay in the tree, and they now reproduce byte-for-byte from
this build. Historical synthetic-price exports move to archive/, and the
README's hand-copied Planner revision is dropped in favour of reading the pin
from Cargo.toml, since the copied one had gone stale.
The sort-key contract test now compiles the query instead of reading a
committed export, so it no longer depends on plans from an older Planner.
A certified companion fixture for the heap candidates is NOT included: the
issue-754 generator cannot supply one. Scoped evidence needs
topk_selected_lower_bound > topk_excluded_upper_bound, and under the
generator's own per-series domain the third- and fourth-ranked series overlap
in both groups, while these queries evaluate in real_time scope so the bound
must hold across the whole validity window. That needs a generator with
non-overlapping per-series domains.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/design_docs/planning-test-layers.md
+9-1Lines changed: 9 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ ERP collection, feedback-driven replanning and deployment switching are deferred
8
8
9
9
| PR | Input | Assertion |
10
10
| --- | --- | --- |
11
-
|#728: structure | workload and declared execution/accuracy contracts |Every supported candidate has a valid physical DAG or an explicit binding rejection; no prices or winner assertions|
11
+
|#728: structure | workload and declared execution/accuracy contracts |Membership: required shapes appear in the inventory and resolve as declared (bind, or refuse for a named policy reason); every other rejection is a recorded defect with a fixed occurrence count. No prices, no winner |
12
12
|#742: ranking | same candidates plus synthetic complete quotes | Selection follows costs, reverses with costs, and excludes unavailable candidates |
13
13
|#775: execution | workload, synthetic quotes, finite fixture data | Mutate quotes to select each admitted candidate, install and execute it; validate every query result and execution provenance |
14
14
@@ -37,6 +37,14 @@ once, ingests its fixture once, and checks every query in that workload.
37
37
under the fixture's contracts, not an exhaustive Cartesian product of hypothetical
0 commit comments