aboutsummaryrefslogtreecommitdiff
path: root/test/test_golden.ml
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_golden.ml')
-rw-r--r--test/test_golden.ml40
1 files changed, 39 insertions, 1 deletions
diff --git a/test/test_golden.ml b/test/test_golden.ml
index e9b3ec5..a073c52 100644
--- a/test/test_golden.ml
+++ b/test/test_golden.ml
@@ -1281,6 +1281,40 @@ let test_readings_displaced_sunday_feria_known_divergent () =
2026 10 26
"2026-10-26 slug=ef-time-after-pentecost-22-monday first=Col 1:12-20. gospel=John 18:33-37"
+
+(* ---- Rogation Wednesday (RG 87/88/89), movable-date-specs task ----
+
+ RG 87, verbatim (scan1.txt:691): "Litaniae minores seu Rogationes, per se,
+ assignantur feriis II, III et IV ante festum Ascensionis Domini" -- Monday,
+ Tuesday AND Wednesday. colitur built the first two as temporal offices from
+ the start; the Wednesday had no channel at all until Date_spec grew
+ [Easter_offset], because Easter+38 IS the Ascension Vigil by construction
+ and there is no (month, day) a Fixed spec could anchor to.
+
+ RG 88 keeps it out of the Office entirely, so the Vigil remains the
+ observed day and this is only ever a commemoration. RG 89 routes it through
+ the Major Litanies' rules -- but RG 109's closed list of privileged
+ commemorations names only "de Litaniis MAIORIBUS", never minoribus, so by
+ RG 107's closing rule it is ORDINARY. That asymmetry is the whole point of
+ pinning two years rather than one:
+
+ 2024 -- nothing else competes, so the single commemoration RG 111 allows on
+ a II-class day is the Rogation itself.
+ 2026 -- St Robert Bellarmine (III class) is impeded onto the same day and
+ takes that one slot instead: RG 113 orders admissions by RG 91's table, and
+ a Commemoration_only candidate has no row in it at all (band returns
+ [unclassified]), so a genuine feast outranks it.
+
+ Both weekdays independently checked with `date -d`. *)
+let test_rogation_wednesday_admitted_2024 () =
+ check ~msg:"2024: Rogation Wednesday is the one admitted commemoration" 2024 5 8
+ "2024-05-08 wednesday season=paschaltide week=6 slug=ef-ascension-vigil rank=class-2 colour=white subject=temporal name_la=- comms=[rogation-wednesday:ordinary] in=- out=[]"
+
+let test_rogation_wednesday_yields_to_a_feast_2026 () =
+ check ~msg:"2026: an impeded III-class feast takes the single slot instead" 2026 5 13
+ "2026-05-13 wednesday season=paschaltide week=6 slug=ef-ascension-vigil rank=class-2 colour=white \
+ subject=temporal name_la=- comms=[robert-bellarmine:ordinary] in=- out=[]"
+
let suite =
( "golden pins (known-tricky years)",
[ Alcotest.test_case "Easter extreme: 1598 earliest (22 Mar, Gauss-verified)" `Quick
@@ -1371,5 +1405,9 @@ let suite =
test_readings_step4_common_frances;
Alcotest.test_case
"readings: displaced-Sunday feria pins M26 shape 2(b)'s KNOWN-WRONG walkback (2026-10-26)" `Quick
- test_readings_displaced_sunday_feria_known_divergent
+ test_readings_displaced_sunday_feria_known_divergent;
+ Alcotest.test_case "RG87: Rogation Wednesday admitted (2024)" `Quick
+ test_rogation_wednesday_admitted_2024;
+ Alcotest.test_case "RG87/113: Rogation Wednesday yields to an impeded feast (2026)" `Quick
+ test_rogation_wednesday_yields_to_a_feast_2026
] )