diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-17 13:02:39 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-17 13:02:39 +0200 |
| commit | 5d236c75c557a7e9ed4a8a852b8089aca48b594e (patch) | |
| tree | 59686baed56d78eff5255e31e0f677ebe32d044d /test/test_golden.ml | |
| parent | 8d1eb25a311e16ddb7bf89d2b21fb1ca0aa058a7 (diff) | |
| download | colitur-5d236c75c557a7e9ed4a8a852b8089aca48b594e.tar.gz colitur-5d236c75c557a7e9ed4a8a852b8089aca48b594e.zip | |
test(oracle): fix round 1 -- C30 disclosure, RG 17(a) misattribution, M26 shapes
Three Important findings from coordinator review of 8d1eb25, all fixed.
1. C30's own note claimed its 91-row population "is C25's OWN former
population, before this task narrowed it" -- false. Independently
re-derived against the real resolver (pre-fix vs post-fix binary) and
the lectio fixture: only 44 of the 91 rows were ever in C25 (Wed 6/
Thu 19/Fri 19, matching C25's own fix-round-3 breakdown exactly); the
other 47 (all of Monday/Tuesday, plus part of Wednesday/Friday)
previously matched lectio outright -- both engines independently
landing on the same wrong value -- and are newly allow-listed only
because colitur is now right. Rewritten to the same "both engines
silently agreed on the wrong answer" pattern C33/C34 already used.
2. "Diebus ferialibus" is not RG 17(a) -- RG 17(a) states only the
day-identity privilege; the ferial-Mass rubrics are Mass-propers
rubrics, a distinction the register's own §6.3 already drew before
this task's first pass blurred it in code/allow-list comments. A
further slip: C31/C32 called their own rubric "RG 17(a)'s own next/
third sentence" when it is a different rubric block ~230 lines away,
in Holy Family's (not Holy Name's) own feast propers. Fixed the
attribution chain throughout tools/bootstrap_lectionary.ml,
data/ef/expected-divergences.sexp's C29-C34, and (gitignored, outside
this commit) docs/research/rules-register.md -- closed the §6.3 park,
added §6.5 recording all four citations with corrected attribution.
Quotes and line numbers were already right; only the chain of custody
to RG 17(a) was wrong.
3. M26's own 30 rows classify into two nameable shapes, not "three
confirmed shapes" with an unexplained 23-row residue that was in fact
empty: 21 rows are RG 78's own already-documented BVM votive-Mass
gap; 9 rows are a second, distinct gap -- a week whose own Sunday was
displaced by a movable named feast (Trinity->Corpus Christi, "Missa
Dominicae I post Pentecosten"; Christ the King), where the Missal
requires the displaced Sunday's own Mass to keep informing that
week's ferias but step 3 walks back to the displacing feast's citation
instead -- proven directly by colitur's own citation on the Christ-
the-King rows being literally that feast's own Gospel. verdict open
unchanged (not fixed here); the shape is now named instead of buried.
Minors: section count corrected 1458->1456 (four places); "exactly one
candidate, zero ambiguous" corrected to "correctness rests on ordering,
not uniqueness" (2 of 1456 sections genuinely yield two candidates,
Holy Saturday's own Lectio, both years); the stale "nothing in layers
3-5 compares citations" claim corrected (only layer 5 still doesn't);
M18's note corrected (five new entries not six; ~18 of its remaining
352 rows only agree now because of this task's own fixes, not "already"
before it); "five" corrected to "six" otherwise-unoccupied Saturdays in
bootstrap_lectionary.ml; scan2 quotes softened where OCR-garbled.
Also done outside the git-tracked files: the step-4 (Commons) coverage
gap is now recorded in data/ef/expected-divergences-missalemeum.sexp's
own header, not only the commit body and the (gitignored) report.
dune test: 358 tests green. COLITUR_EXHAUSTIVE_SWEEP=1 dune test
--force: 359 tests green, 95.7s.
Diffstat (limited to 'test/test_golden.ml')
| -rw-r--r-- | test/test_golden.ml | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/test/test_golden.ml b/test/test_golden.ml index 2f8930f..8d33e29 100644 --- a/test/test_golden.ml +++ b/test/test_golden.ml @@ -94,11 +94,15 @@ let real_ef_lectionary = (* The Commons (data/ef/commons.sexp) travel the same caller-supplied seam as the lectionary above, and [~commons] is required rather than defaulted - so that no caller can silently run with none -- nothing in layers 3-5 - compares reading citations, so a rite quietly missing its Commons would - be invisible. Loaded here even where this file asserts nothing about - readings, so that the rite under test is the same one bin/main.ml - assembles. *) + so that no caller can silently run with none. CORRECTED, Task 9 fix + round 1 (coordinator review): this used to claim "nothing in layers 3-5 + compares reading citations" -- stale since Task 8 (layer 3) and Task 9 + (layer 4). THIS layer (5, golden pins) is the one that still does not: + this file's own [describe] carries no citation field at all, so a rite + quietly missing its Commons would still be invisible here specifically, + even though layers 3/4 would now catch it. Loaded here even where this + file asserts nothing about readings, so that the rite under test is the + same one bin/main.ml assembles. *) let real_ef_commons = match Rite_ef.Lectionary_ef.Commons.load commons_path with | Error e -> failwith (Printf.sprintf "%s: failed to load: %s" commons_path e) |
