From 9947a28f3a40bd8ac36892dcf5aad59d9e6f847c Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Sat, 15 Aug 2026 04:48:59 +0200 Subject: test(differential): fix round 3 -- two more Ember Saturdays, doc fixes Two Ember Saturdays shipped an apostle's Mass verbatim from lectio's own ini, the exact shape already found and fixed for Passion Tuesday (C26): ef-advent-ember-sat carried St Thomas the Apostle's Mass (Eph 2:19-22 / John 20:24-29, 21 December) instead of the real "Sabbato Quatuor Temporum Adventus" (2 Thess 2:1-8 / Luke 3:1-6); ef-september- ember-sat carried St Matthew's Mass (Ezek 1:10-14 / Matt 9:9-13, 21 September) instead of the real "Sabbato Quatuor Temporum septembris" (Heb 9:2-12 / Luke 13:6-17). Both verified against both primary-source scans independently. Both readings are explicitly labelled "Lectio Epistolae" in the Missal on both days, so neither needed the "last lesson before the Gospel" convention Holy Wednesday/Good Friday relied on -- a textual fact, not an editorial choice. Fixed at the source in tools/bootstrap_lectionary.ml: colitur_keys excludes both wrong ini sections; a new ember_saturday_corrections list hand-authors the real citations. New allow-list entries C27/C28 (40 rows each, not the naive 46 -- traced to the identical 6 civil years where 21 September and 21 December, always exactly 91 days apart, land on a Saturday and the fixed saint's feast wins outright). Both values pinned in test_lectionary.ml and mutation-tested. Also: C25's per-weekday breakdown was mislabelled (right multiset, rotated weekday labels) in both test_differential.ml and expected- divergences.sexp -- corrected to Wednesday 6/Thursday 19/Friday 19/Saturday 13, and the claim that this split came directly from the comparator's own output is narrowed to what's actually true (only the total, 57, does). C26's scan2 citation range was extended to include the Gospel (previously stopped after the Epistle). lib/kernel/liturgical_day.mli's "citations always empty until Plan 4" comment is now stale on this branch -- left untouched (Task 11's own documentation pass), noted in the task report so it isn't lost. dune test: 358 tests green; COLITUR_EXHAUSTIVE_SWEEP=1: 359 green. --- test/test_lectionary.ml | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'test/test_lectionary.ml') diff --git a/test/test_lectionary.ml b/test/test_lectionary.ml index e88f103..3fbf8c5 100644 --- a/test/test_lectionary.ml +++ b/test/test_lectionary.ml @@ -100,8 +100,14 @@ let test_ef_data_file_loads () = Passion Tuesday's own real citation (+1, fix round 2); three hand-authored directly from the Missal, the fixed Nativity-Octave days (+3); one entry derived from an already-translated one - rather than re-typed ([ef-holy-name], +1). - 119 + 1 - 1 + 1 + 6 + 1 + 3 + 1 = 131. *) + rather than re-typed ([ef-holy-name], +1); two ini sections + EXCLUDED, fix round 3 -- "ef-advent-ember-sat"/ + "ef-september-ember-sat" carried a saint's Mass verbatim (Thomas + the Apostle's/Matthew's, the C26 shape), not the real Ember + Saturday (-2); two hand-authored directly from the Missal + replacing them, [ember_saturday_corrections] (+2, net 0 against + the -2 immediately above). + 119 + 1 - 1 + 1 + 6 + 1 + 3 + 1 - 2 + 2 = 131. *) Alcotest.(check int) "entry count" 131 (List.length (Lectionary.entries l)); (match Lectionary.find l (slug "ef-lent-1-monday") with @@ -173,6 +179,17 @@ let test_ef_data_file_loads () = check_entry "ef-nativity-octave-day-5" "Titus 3:4-7" "Luke 2:15-20"; check_entry "ef-nativity-octave-day-6" "Titus 3:4-7" "Luke 2:15-20"; check_entry "ef-nativity-octave-day-7" "Titus 3:4-7" "Luke 2:15-20"; + (* Fix round 3 (coordinator review, Important): two more Ember + Saturdays that inherited a saint's Mass verbatim from lectio's + ini, the exact C26 shape -- pinned here so a future regeneration + that silently reverts to the wrong (saint's) value fails loudly + and locally, the same discipline the Lent Ember/Passion Tuesday + pins above already established for their own fix rounds. Both + readings are explicitly labelled "Lectio Epistolae" in the + Missal, so neither needed the "last lesson before the Gospel" + convention Holy Wednesday/Good Friday above rely on. *) + check_entry "ef-advent-ember-sat" "2 Thess 2:1-8" "Luke 3:1-6"; + check_entry "ef-september-ember-sat" "Heb 9:2-12" "Luke 13:6-17"; (* Lent's OWN "ef-lent-1-wednesday/friday/saturday" keys must not reappear once renamed away (colitur never computes them as its own slug at all) -- a regression net for that decision, not -- cgit v1.3