aboutsummaryrefslogtreecommitdiff
path: root/test/test_lectionary.ml
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-24 16:29:23 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-24 16:29:23 +0200
commit8a5da8756cf6b57aa36c01b71ce893f7967d3a29 (patch)
tree10873a692400fa25ce54c67ac9fc34d46af86272 /test/test_lectionary.ml
parent4f87cbde4ee79ac96aa7ebfed105b3a5ec02be43 (diff)
parent73b15551804bb63ee0081005e2869d36afb54be2 (diff)
downloadcolitur-8a5da8756cf6b57aa36c01b71ce893f7967d3a29.tar.gz
colitur-8a5da8756cf6b57aa36c01b71ce893f7967d3a29.zip
merge: celebrant Mass rubrics, and four rubrical corrections
colitur now prints what a real ordo prints for the Mass: which formulary is said and how it was reached, the Gloria, the Creed, the preface, and the commemorations with their Low-Mass/sung distinction. colitur rubrics joins day and readings. Four defects were found and fixed on the way, each by an external witness rather than by inspection: the Creed said at Requiem Masses (RG 476(f)), the missing bissextile shift of St Matthias and St Gabriel (2 041 leap years), Rogation Monday and Tuesday coloured violet in Paschaltide (RG 119(b)), and the ferias after the Ascension resuming the wrong Sunday's Mass rather than the Ascension's. Validation gained a sixth layer and then some: the preface is checked against three independent publishers over seven witness-years (FIUV, three LMS editions, three extraordinaryform.org editions), none of which shares the Divinum Officium -> missalemeum -> lectio lineage the older layers all descend from.
Diffstat (limited to 'test/test_lectionary.ml')
-rw-r--r--test/test_lectionary.ml38
1 files changed, 36 insertions, 2 deletions
diff --git a/test/test_lectionary.ml b/test/test_lectionary.ml
index 7dbb253..59c739d 100644
--- a/test/test_lectionary.ml
+++ b/test/test_lectionary.ml
@@ -115,8 +115,14 @@ let test_ef_data_file_loads () =
([epiphanytide_opening_entries], +15); TWO hand-authored
directly from the Missal, two major movable feasts with
previously no entry at all ([movable_feast_entries], +2).
- 116 + 1 + 6 + 1 + 2 + 3 + 2 + 15 + 2 = 148. *)
- Alcotest.(check int) "entry count" 153
+ 116 + 1 + 6 + 1 + 2 + 3 + 2 + 15 + 2 = 148.
+ celebrant-rubrics-phase1, Bug 2 (2026-08-22): SIX hand-authored
+ directly from the Missal's own marginal Ascension-repeat rubric
+ ([ascension_week_entries], +6, 153 -> 159) -- see that
+ function's own comment in bootstrap_lectionary.ml for the
+ citation and why the window's two Saturdays are deliberately
+ excluded. *)
+ Alcotest.(check int) "entry count" 159
(List.length (Lectionary.entries l));
(match Lectionary.find l (slug "ef-lent-1-monday") with
| Some [ a; b ] ->
@@ -179,6 +185,34 @@ let test_ef_data_file_loads () =
scans). *)
check_entry "ef-corpus-christi" "1 Cor 11:23-29" "John 6:56-59";
check_entry "ef-sacred-heart" "Eph 3:8-12, 14-19" "John 19:31-37";
+ (* celebrant-rubrics-phase1, Bug 2: the Missal's own marginal rubric
+ after the Ascension's own Mass propers ("Diebus a feria VI post
+ Ascensionem usque ad feriam VI ante vigiliam Pentecostes
+ inclusive, dicitur Missa de festo Ascensionis") repeats the
+ Ascension's own citation on the ferias that would otherwise walk
+ back to the wrong Sunday. Two families pinned (the tail of
+ Ascension's own week; the following week), not merely one, the
+ same "more than one weekday" discipline this file already uses
+ for the Lent Ember pins above. *)
+ check_entry "ef-easter-6-friday" "Acts 1:1-11" "Mark 16:14-20";
+ check_entry "ef-easter-7-monday" "Acts 1:1-11" "Mark 16:14-20";
+ check_entry "ef-easter-7-friday" "Acts 1:1-11" "Mark 16:14-20";
+ (* [ef-easter-6-saturday] keeps its own PRE-EXISTING entry, unchanged
+ by this task -- RG 78's votive Office of Our Lady always wins an
+ otherwise-unoccupied Class4 Saturday first ([readings]' own step
+ ordering runs that branch before step 2 is ever reached), so this
+ table's own value for that slug is dead data on shipped data, but
+ it was already there before this task and touching it is out of
+ scope. [ef-easter-7-saturday] must stay ABSENT instead: that civil
+ day is the Vigil of Pentecost, a NAMED day with its own slug and
+ Mass (temporal_ef.ml's own [named]), so the generic
+ [ef-<season>-<week>-<weekday>] ferial slug this table's new
+ entries key off never gets produced there at all -- an entry
+ would be unreachable data [assert_reachable] would have refused
+ to emit, checked here too as a direct regression net. *)
+ (match Lectionary.find l (slug "ef-easter-7-saturday") with
+ | None -> ()
+ | Some _ -> Alcotest.fail "ef-easter-7-saturday: must stay absent -- the Vigil of Pentecost, named, never a ferial slug");
check_entry "ef-nativity-vigil" "Rom 1:1-6" "Matt 1:18-21";
check_entry "ef-pentecost-ember-wed" "Acts 5:12-16" "John 6:44-52.";
check_entry "ef-pentecost-ember-fri" "Joel 2:23-24; 26-27" "Luke 5:17-26";