From b0ff86ae552b90613be21c52433f4180deba7758 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Sat, 15 Aug 2026 03:40:19 +0200 Subject: test(differential): fix round 1 -- Holy Week, Lent Ember, RG 69 Two Critical findings, both real: Holy Week (including the entire Sacred Triduum) was reading Passion Week's Masses -- the original colitur_keys widened lectio's single, conflated ini section into both weeks instead of Passion week alone. Narrowed to Passion week only; Holy Week's own four cleanest days (Monday, Tuesday, Thursday, Saturday) are hand-authored directly from the Missal, verified twice against both scans (C23); Holy Wednesday and Good Friday are genuinely multi-lesson liturgies with no single Epistle slot and are deliberately left unanswered, not guessed (C24). The Lenten Ember days were still dead keys: Temporal_ef computes ef-lent-ember-{wed,fri,sat}, lectio's ini names the same data ef-lent-1-{wednesday,friday,saturday}, and colitur_keys never translated it -- both engines independently fell through to the same wrong ferial answer, so even the differential stayed green (C22, a genuine lectio bug recorded for upstream). Fixed the instance and the class: colitur_keys gained the rename, and tools/bootstrap_lectionary.ml gained assert_reachable, sweeping Rite_ef.Temporal_ef.temporal at generation time so a translation table entry naming a slug colitur never computes dies loudly instead of shipping silently, plus an informational log of every real slug with no entry at all. C21 ("colitur's step 3 cannot reach a correct answer for the fixed Christmastide slugs") is retired, superseded rather than merely patched: the Nativity-Octave days now have their own direct Missal formulary (Tit. 3,4-7/Luc. 2,15-20, "Diebus infra octavam Nativitatis Domini"), resolved at step 2, not step 3 at all. That surfaced a real RG 69 gap underneath it: a Sunday landing 26-31 December should keep its own Office, not the fixed weekday placeholder, which Temporal_ef does not currently distinguish. C6's verdict is re-opened (open, not colitur) for the 19 of its 138 rows where this applies directly, and a new entry C25 (57 rows) records the same gap propagating one hop further through step 3 into Holy Name week. Both are out of this task's own scope -- a behaviour change to a shared, multi-round-reviewed kernel-adjacent function -- and recorded, not fixed, per the coordinator's own instruction. C6's own note is rewritten in full rather than layered with another correction; C18's stale trailing count is fixed to match its own pin; the Vigil-misapplication risk flagged as a Minor closed itself once the Nativity-Octave fix landed, confirmed by inspection rather than assumed. dune test: 358/358. COLITUR_EXHAUSTIVE_SWEEP=1 dune test --force: 359/359. --- test/test_lectionary_ef.ml | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'test/test_lectionary_ef.ml') diff --git a/test/test_lectionary_ef.ml b/test/test_lectionary_ef.ml index 71888e3..51c3233 100644 --- a/test/test_lectionary_ef.ml +++ b/test/test_lectionary_ef.ml @@ -146,11 +146,30 @@ let test_step3_advent_feria_resumes_sunday () = [ "Rom 13:11-14"; "Luke 21:25-33" ] (refs (day 2025 12 1)) +(* Task 8, fix round 1 (coordinator review, Important 3(a)): this test used + to pin 2025-12-29 (a Monday), reached by resuming its preceding Sunday's + temporal identity. That date no longer exercises step 3 at all -- + tools/bootstrap_lectionary.ml's own [nativity_octave_entries] now gives + the fixed Nativity-Octave slug (RG 91 entry 17, "ef-nativity-octave- + day-5") its OWN direct citation ("Diebus infra octavam Nativitatis + Domini", Tit. 3,4-7/Luc. 2,15-20), so 29 December resolves at STEP 2, + unconditionally, regardless of weekday. Every civil day in 29-31 + December now resolves the same way -- there is no date left in that + specific window this test could use to exercise step 3. + + Replaced with 2028-01-05 (a Wednesday in Holy Name week, "ef-christmas- + 1-wednesday"), which still has no citation of its own and genuinely + resumes ITS preceding Sunday, 2028-01-02 -- confirmed a real Sunday + that year, and confirmed to be Holy Name Sunday specifically (its own + [ef-holy-name-sunday] slug, RG 17(a)), not a coincidence: the whole + POINT of this test is a Christmas-season feria genuinely falling + through to step 3, and this is the closest remaining civil-calendar + case to the original 29-31 December window that still does. *) let test_step3_christmas_feria_resumes_sunday () = Alcotest.(check (list string)) - "Monday after the Sunday within the octave of Christmas" + "Wednesday of Holy Name week resumes Holy Name Sunday's Mass" [ "Gal 4:1-7"; "Luke 2:33-40" ] - (refs (day 2025 12 29)) + (refs (day 2028 1 5)) (* Fix round 1 (coordinator review, Important finding 1): the original test here (2028-12-26) did not exercise step 3 at all -- 26 December is always -- cgit v1.3