aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/test_differential.ml37
-rw-r--r--test/test_lectionary.ml2
2 files changed, 38 insertions, 1 deletions
diff --git a/test/test_differential.ml b/test/test_differential.ml
index 31ae046..eb83c0e 100644
--- a/test/test_differential.ml
+++ b/test/test_differential.ml
@@ -719,6 +719,32 @@ let year_of_date date = int_of_string (String.sub date 0 4)
and citation shape are similar. *)
let holy_name_sunday_slug = "ef-holy-name-sunday"
+(* C35 -- movable-date-specs follow-up (2026-08-17); this is test_oracle.ml's
+ own M26 shape 2(a), now FIXED rather than allow-listed there.
+
+ RG 299 (scan1.txt:1096-1098) is the general ferial rule: "In reliquis
+ feriis dicitur Missa dominicae praecedentis, NISI A RUBRICIS ALITER
+ PROVISUM SIT", restated in the propers (scan1.txt:4933-4935) as "...nisi
+ propria Missa assignetur". The Missal DOES assign one for this week: it
+ prints "Missa dominicae I post Pentecosten" (heading, scan1.txt:21758)
+ immediately after Trinity Sunday's Mass, precisely because Trinity has
+ taken that Sunday's own -- 1 Ioann. 4, 8-21 (scan1.txt:21801-21802) /
+ Luc. 6, 36-42 (scan1.txt:21813-21814).
+
+ colitur now resolves these ferias at step 2 from that formula. lectio walks
+ back to Trinity Sunday's Mass instead (Rom 11:33-36 / Matt 28:18-20) --
+ which is exactly what colitur did until this fix. Verdict colitur, on the
+ Missal's own printed heading.
+
+ No Thursday: Corpus Christi is Easter+60, which IS the Thursday of this
+ week every year, so that ferial slug never exists at all -- found by the
+ bootstrap's own reachability guard, which refuses to emit a key no
+ Temporal_ef slug can ever match. *)
+let trinity_week_slugs =
+ [ "ef-time-after-pentecost-1-monday"; "ef-time-after-pentecost-1-tuesday";
+ "ef-time-after-pentecost-1-wednesday"; "ef-time-after-pentecost-1-friday";
+ "ef-time-after-pentecost-1-saturday" ]
+
let christmas_1_weekday_slugs =
List.map (fun wd -> "ef-christmas-1-" ^ wd) [ "monday"; "tuesday"; "wednesday"; "thursday"; "friday" ]
@@ -1141,6 +1167,17 @@ let layer_c_reason (l : row) (c : row) diffs =
(Saturday stays C25's own, narrowed note above explains why). *)
diffs = [ First_f; Gospel_f ] && List.mem c.slug christmas_1_weekday_slugs
then Some "C30"
+ (* [Colour_f] is admitted only on the Saturday of this week, and only
+ alongside the citation difference: that day is ALSO an unoccupied
+ IV-class Saturday, so RG 78's votive Office of the BVM makes colitur
+ white where lectio (which builds no such office) is green -- C17's own
+ shape, landing on the same day as this one. [First_f] is REQUIRED, so a
+ colour-only Saturday still falls to C17 and cannot be absorbed here. *)
+ else if
+ List.mem c.slug trinity_week_slugs
+ && subset diffs [ First_f; Gospel_f; Colour_f ]
+ && List.mem First_f diffs
+ then Some "C35"
else if
(* C31 -- Task 9: the SAME rubric's own next sentence, "diebus
ferialibus a 7 ad 12 ianuarii ante dominicam I post Epiphaniam...
diff --git a/test/test_lectionary.ml b/test/test_lectionary.ml
index 1f8ed75..7dbb253 100644
--- a/test/test_lectionary.ml
+++ b/test/test_lectionary.ml
@@ -116,7 +116,7 @@ let test_ef_data_file_loads () =
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" 148
+ Alcotest.(check int) "entry count" 153
(List.length (Lectionary.entries l));
(match Lectionary.find l (slug "ef-lent-1-monday") with
| Some [ a; b ] ->