aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/golden/grid-2027.html2
-rw-r--r--test/golden/grid-2027.tex2
-rw-r--r--test/golden/grid-2027.typ2
-rw-r--r--test/golden/ordo-2027.adoc2
-rw-r--r--test/golden/ordo-2027.html4
-rw-r--r--test/golden/ordo-2027.md2
-rw-r--r--test/golden/ordo-2027.ms2
-rw-r--r--test/golden/ordo-2027.tex4
-rw-r--r--test/golden/ordo-2027.txt2
-rw-r--r--test/golden/ordo-2027.typ4
-rw-r--r--test/test_golden.ml32
-rw-r--r--test/test_lms_ordo.ml52
-rw-r--r--test/test_rubrics_ef.ml20
13 files changed, 96 insertions, 34 deletions
diff --git a/test/golden/grid-2027.html b/test/golden/grid-2027.html
index daa6ba5..6741ad7 100644
--- a/test/golden/grid-2027.html
+++ b/test/golden/grid-2027.html
@@ -131,7 +131,7 @@
<td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="pad"></td><td class="white"><span class="dom">1</span>St. Joseph the Workman<span class="sigla">Col 3:14-15, 17, 23-24 &middot; Matt 13:54-58</span></td>
</tr>
<tr>
- <td class="white"><span class="dom">2</span>5th Sunday after Easter<span class="sigla">Jas 1:22-27 &middot; John 16:23-30</span></td><td class="violet"><span class="dom">3</span>Rogation Monday<span class="sigla">Jas 1:22-27 &middot; John 16:23-30</span></td><td class="white"><span class="dom">4</span>St. Monica<span class="sigla">1 Tim 5:3-10 &middot; Luke 7:11-16</span></td><td class="white"><span class="dom">5</span>Vigil of the Ascension<span class="sigla">Eph 4:7-13 &middot; John 17:1-11</span></td><td class="white"><span class="dom">6</span>The Ascension of Our Lord<span class="sigla">Acts 1:1-11 &middot; Mark 16:14-20</span></td><td class="red"><span class="dom">7</span>St. Stanislaus<span class="sigla">Wis 5:1-5 &middot; John 15:1-7</span></td><td class="white"><span class="dom">8</span>Our Lady&#39;s Saturday Office<span class="sigla">Ecclus 24:14-16 &middot; John 19:25-27</span></td>
+ <td class="white"><span class="dom">2</span>5th Sunday after Easter<span class="sigla">Jas 1:22-27 &middot; John 16:23-30</span></td><td class="white"><span class="dom">3</span>Rogation Monday<span class="sigla">Jas 1:22-27 &middot; John 16:23-30</span></td><td class="white"><span class="dom">4</span>St. Monica<span class="sigla">1 Tim 5:3-10 &middot; Luke 7:11-16</span></td><td class="white"><span class="dom">5</span>Vigil of the Ascension<span class="sigla">Eph 4:7-13 &middot; John 17:1-11</span></td><td class="white"><span class="dom">6</span>The Ascension of Our Lord<span class="sigla">Acts 1:1-11 &middot; Mark 16:14-20</span></td><td class="red"><span class="dom">7</span>St. Stanislaus<span class="sigla">Wis 5:1-5 &middot; John 15:1-7</span></td><td class="white"><span class="dom">8</span>Our Lady&#39;s Saturday Office<span class="sigla">Ecclus 24:14-16 &middot; John 19:25-27</span></td>
</tr>
<tr>
<td class="white"><span class="dom">9</span>Sunday after the Ascension<span class="sigla">1 Pet 4:7-11 &middot; John 15:26-27; 16:1-4</span></td><td class="white"><span class="dom">10</span>St. Antoninus<span class="sigla">Ecclus 44:16-27; 45:3-20 &middot; Matt 25:14-23</span></td><td class="red"><span class="dom">11</span>Sts. Philip &amp; James<span class="sigla">Wis 5:1-5 &middot; John 14:1-13</span></td><td class="red"><span class="dom">12</span>Sts. Nereus, Achilleus, Domitilla, &amp; Pancras<span class="sigla">Wis 5:1-5 &middot; John 4:46-53</span></td><td class="white"><span class="dom">13</span>St. Robert Bellarmine<span class="sigla">Wis 7:7-14 &middot; Matt 5:13-19</span></td><td class="white"><span class="dom">14</span>Friday of the 7th Week of Eastertide<span class="sigla">1 Pet 4:7-11 &middot; John 15:26-27; 16:1-4</span></td><td class="red"><span class="dom">15</span>Vigil of Pentecost<span class="sigla">Acts 19:1-8 &middot; John 14:15-21</span></td>
diff --git a/test/golden/grid-2027.tex b/test/golden/grid-2027.tex
index 674b9c4..d81bdb4 100644
--- a/test/golden/grid-2027.tex
+++ b/test/golden/grid-2027.tex
@@ -151,7 +151,7 @@
\begin{tabular}{|*{7}{p{\cellw}|}}\hline
\textbf{ Sunday } & \textbf{ Monday } & \textbf{ Tuesday } & \textbf{ Wednesday } & \textbf{ Thursday } & \textbf{ Friday } & \textbf{ Saturday } \\ \hline
& & & & & & \cellcolor{cwhite}\daycell{ 1 }{ St. Joseph the Workman }{ 1st Class }{ Col 3:14-15, 17, 23-24\ \textperiodcentered\ Matt 13:54-58 } \\ \hline
-\cellcolor{cwhite}\daycell{ 2 }{ 5th Sunday after Easter }{ 2nd Class }{ Jas 1:22-27\ \textperiodcentered\ John 16:23-30 } & \cellcolor{cviolet}\daycell{ 3 }{ Rogation Monday }{ 4th Class }{ Jas 1:22-27\ \textperiodcentered\ John 16:23-30 } & \cellcolor{cwhite}\daycell{ 4 }{ St. Monica }{ 3rd Class }{ 1 Tim 5:3-10\ \textperiodcentered\ Luke 7:11-16 } & \cellcolor{cwhite}\daycell{ 5 }{ Vigil of the Ascension }{ 2nd Class }{ Eph 4:7-13\ \textperiodcentered\ John 17:1-11 } & \cellcolor{cwhite}\daycell{ 6 }{ The Ascension of Our Lord }{ 1st Class }{ Acts 1:1-11\ \textperiodcentered\ Mark 16:14-20 } & \cellcolor{cred}\daycell{ 7 }{ St. Stanislaus }{ 3rd Class }{ Wis 5:1-5\ \textperiodcentered\ John 15:1-7 } & \cellcolor{cwhite}\daycell{ 8 }{ Our Lady's Saturday Office }{ 4th Class }{ Ecclus 24:14-16\ \textperiodcentered\ John 19:25-27 } \\ \hline
+\cellcolor{cwhite}\daycell{ 2 }{ 5th Sunday after Easter }{ 2nd Class }{ Jas 1:22-27\ \textperiodcentered\ John 16:23-30 } & \cellcolor{cwhite}\daycell{ 3 }{ Rogation Monday }{ 4th Class }{ Jas 1:22-27\ \textperiodcentered\ John 16:23-30 } & \cellcolor{cwhite}\daycell{ 4 }{ St. Monica }{ 3rd Class }{ 1 Tim 5:3-10\ \textperiodcentered\ Luke 7:11-16 } & \cellcolor{cwhite}\daycell{ 5 }{ Vigil of the Ascension }{ 2nd Class }{ Eph 4:7-13\ \textperiodcentered\ John 17:1-11 } & \cellcolor{cwhite}\daycell{ 6 }{ The Ascension of Our Lord }{ 1st Class }{ Acts 1:1-11\ \textperiodcentered\ Mark 16:14-20 } & \cellcolor{cred}\daycell{ 7 }{ St. Stanislaus }{ 3rd Class }{ Wis 5:1-5\ \textperiodcentered\ John 15:1-7 } & \cellcolor{cwhite}\daycell{ 8 }{ Our Lady's Saturday Office }{ 4th Class }{ Ecclus 24:14-16\ \textperiodcentered\ John 19:25-27 } \\ \hline
\cellcolor{cwhite}\daycell{ 9 }{ Sunday after the Ascension }{ 2nd Class }{ 1 Pet 4:7-11\ \textperiodcentered\ John 15:26-27; 16:1-4 } & \cellcolor{cwhite}\daycell{ 10 }{ St. Antoninus }{ 3rd Class }{ Ecclus 44:16-27; 45:3-20\ \textperiodcentered\ Matt 25:14-23 } & \cellcolor{cred}\daycell{ 11 }{ Sts. Philip \& James }{ 2nd Class }{ Wis 5:1-5\ \textperiodcentered\ John 14:1-13 } & \cellcolor{cred}\daycell{ 12 }{ Sts. Nereus, Achilleus, Domitilla, \& Pancras }{ 3rd Class }{ Wis 5:1-5\ \textperiodcentered\ John 4:46-53 } & \cellcolor{cwhite}\daycell{ 13 }{ St. Robert Bellarmine }{ 3rd Class }{ Wis 7:7-14\ \textperiodcentered\ Matt 5:13-19 } & \cellcolor{cwhite}\daycell{ 14 }{ Friday of the 7th Week of Eastertide }{ 4th Class }{ 1 Pet 4:7-11\ \textperiodcentered\ John 15:26-27; 16:1-4 } & \cellcolor{cred}\daycell{ 15 }{ Vigil of Pentecost }{ 1st Class }{ Acts 19:1-8\ \textperiodcentered\ John 14:15-21 } \\ \hline
\cellcolor{cred}\daycell{ 16 }{ Pentecost Sunday (Whitsunday) }{ 1st Class }{ Acts 2:1-11\ \textperiodcentered\ John 14:23-31 } & \cellcolor{cred}\daycell{ 17 }{ Monday of Pentecost Week }{ 1st Class }{ Acts 10:34, 42-48\ \textperiodcentered\ John 3:16-21 } & \cellcolor{cred}\daycell{ 18 }{ Tuesday of Pentecost Week }{ 1st Class }{ Acts 8:14-17\ \textperiodcentered\ John 10:1-10 } & \cellcolor{cred}\daycell{ 19 }{ Pentecost Ember Wednesday }{ 1st Class }{ Acts 5:12-16\ \textperiodcentered\ John 6:44-52 } & \cellcolor{cred}\daycell{ 20 }{ Thursday of Pentecost Week }{ 1st Class }{ Acts 8:5-8\ \textperiodcentered\ Luke 9:1-6 } & \cellcolor{cred}\daycell{ 21 }{ Pentecost Ember Friday }{ 1st Class }{ Joel 2:23-24; 2:26-27\ \textperiodcentered\ Luke 5:17-26 } & \cellcolor{cred}\daycell{ 22 }{ Pentecost Ember Saturday }{ 1st Class }{ Rom 5:1-5\ \textperiodcentered\ Luke 4:38-44 } \\ \hline
\cellcolor{cwhite}\daycell{ 23 }{ Trinity Sunday }{ 1st Class }{ Rom 11:33-36\ \textperiodcentered\ Matt 28:18-20 } & \cellcolor{cgreen}\daycell{ 24 }{ Monday of the 1st Week of the Time after Pentecost }{ 4th Class }{ 1 John 4:8-21\ \textperiodcentered\ Luke 6:36-42 } & \cellcolor{cwhite}\daycell{ 25 }{ St. Gregory VII }{ 3rd Class }{ 1 Pet 5:1-4; 5:10-11\ \textperiodcentered\ Matt 16:13-19 } & \cellcolor{cwhite}\daycell{ 26 }{ St. Philip Neri }{ 3rd Class }{ Wis 7:7-14\ \textperiodcentered\ Luke 12:35-40 } & \cellcolor{cwhite}\daycell{ 27 }{ Corpus Christi }{ 1st Class }{ 1 Cor 11:23-29\ \textperiodcentered\ John 6:56-59 } & \cellcolor{cwhite}\daycell{ 28 }{ St. Augustine of Canterbury }{ 3rd Class }{ 1 Thess 2:2-9\ \textperiodcentered\ Luke 10:1-9 } & \cellcolor{cwhite}\daycell{ 29 }{ St. Mary Magdalene de Pazzi }{ 3rd Class }{ 2 Cor 10:17-18; 11:1-2\ \textperiodcentered\ Matt 25:1-13 } \\ \hline
diff --git a/test/golden/grid-2027.typ b/test/golden/grid-2027.typ
index 800edf9..b9e1d0e 100644
--- a/test/golden/grid-2027.typ
+++ b/test/golden/grid-2027.typ
@@ -2056,7 +2056,7 @@
- table.cell(fill: cgrid.at("violet"))[
+ table.cell(fill: cgrid.at("white"))[
#block(height: cellh - 2 * cellinset, clip: true)[
#set par(leading: 0.3em)
#text(weight: "bold")[3] #text(size: 6.5pt)[Rogation Monday]
diff --git a/test/golden/ordo-2027.adoc b/test/golden/ordo-2027.adoc
index 39e5ae4..d5660a0 100644
--- a/test/golden/ordo-2027.adoc
+++ b/test/golden/ordo-2027.adoc
@@ -879,7 +879,7 @@ Epistle Jas 1:22-27 Gospel John 16:23-30
*3* Rogation Monday +
-class-4 · violet +
+class-4 · white +
Epistle Jas 1:22-27 Gospel John 16:23-30
+
Commemoration Sts. Alexander & Companions
diff --git a/test/golden/ordo-2027.html b/test/golden/ordo-2027.html
index 8513909..1b621e4 100644
--- a/test/golden/ordo-2027.html
+++ b/test/golden/ordo-2027.html
@@ -672,9 +672,9 @@
<div class="meta">class-2 &middot; white &middot; Epistle Jas 1:22-27 &middot; Gospel John 16:23-30</div>
</div>
-<div class="day violet">
+<div class="day white">
<span class="dom">3</span>Rogation Monday
- <div class="meta">class-4 &middot; violet &middot; Epistle Jas 1:22-27 &middot; Gospel John 16:23-30</div>
+ <div class="meta">class-4 &middot; white &middot; Epistle Jas 1:22-27 &middot; Gospel John 16:23-30</div>
<div class="meta">Commemoration Sts. Alexander &amp; Companions</div>
</div>
<div class="day white">
diff --git a/test/golden/ordo-2027.md b/test/golden/ordo-2027.md
index 3d96240..d4acf1d 100644
--- a/test/golden/ordo-2027.md
+++ b/test/golden/ordo-2027.md
@@ -789,7 +789,7 @@
**3** Rogation Monday
-`class-4` · violet · Epistle Jas 1:22-27 · Gospel John 16:23-30
+`class-4` · white · Epistle Jas 1:22-27 · Gospel John 16:23-30
- Commemoration Sts. Alexander & Companions
diff --git a/test/golden/ordo-2027.ms b/test/golden/ordo-2027.ms
index e029a76..7bc8c89 100644
--- a/test/golden/ordo-2027.ms
+++ b/test/golden/ordo-2027.ms
@@ -1354,7 +1354,7 @@ May
.IP "3" 4
\fBRogation Monday\fR
.br
-\s74th Class \(bu Violet\s9
+\s74th Class \(bu White\s9
.br
\s7Epistle Jas 1:22-27\s9
.br
diff --git a/test/golden/ordo-2027.tex b/test/golden/ordo-2027.tex
index 0db4121..e8ec59f 100644
--- a/test/golden/ordo-2027.tex
+++ b/test/golden/ordo-2027.tex
@@ -1548,9 +1548,9 @@
\begin{tcolorbox}[colback=white,colframe=black!35,boxrule=0.3pt,sharp corners,boxsep=0mm,left=1.6mm,right=1.6mm,top=0.4mm,bottom=0.4mm,before skip=0.3mm,after skip=0mm]
-\fontsize{9}{9}\selectfont\bfseries 3 \fontsize{7}{9}\selectfont\mdseries\;Monday\hfill\swatch{licolviolet}\\
+\fontsize{9}{9}\selectfont\bfseries 3 \fontsize{7}{9}\selectfont\mdseries\;Monday\hfill\swatch{licolwhite}\\
\fontsize{9}{9.7}\selectfont\bfseries Rogation Monday\\
-\fontsize{6.5}{7.4}\selectfont\mdseries 4th Class \textperiodcentered\ Violet \quad Epistle\ Jas 1:22-27 \quad Gospel\ John 16:23-30 \\
+\fontsize{6.5}{7.4}\selectfont\mdseries 4th Class \textperiodcentered\ White \quad Epistle\ Jas 1:22-27 \quad Gospel\ John 16:23-30 \\
\fontsize{6.5}{7.4}\selectfont\mdseries Commemoration\ Sts. Alexander \& Companions
\end{tcolorbox}
diff --git a/test/golden/ordo-2027.txt b/test/golden/ordo-2027.txt
index 0af67b3..e0073ec 100644
--- a/test/golden/ordo-2027.txt
+++ b/test/golden/ordo-2027.txt
@@ -728,7 +728,7 @@ May 2027
Gospel John 16:23-30
3 Rogation Monday
- class-4 · violet
+ class-4 · white
Epistle Jas 1:22-27
Gospel John 16:23-30
Commemoration Sts. Alexander & Companions
diff --git a/test/golden/ordo-2027.typ b/test/golden/ordo-2027.typ
index 0d87f04..ce5e0ca 100644
--- a/test/golden/ordo-2027.typ
+++ b/test/golden/ordo-2027.typ
@@ -1480,9 +1480,9 @@
#block(width: 100%, above: 0.4mm, below: 0mm, breakable: false, stroke: 0.4pt + luma(160), inset: (x: 1.6mm, y: 0.4mm))[
#set par(leading: 0.36em)
- #text(weight: "bold")[3] #h(2mm) #text(size: 7pt)[Monday] #h(1fr) #swatch("violet") \
+ #text(weight: "bold")[3] #h(2mm) #text(size: 7pt)[Monday] #h(1fr) #swatch("white") \
#text(weight: "bold")[Rogation Monday] \
- #text(size: 6.5pt)[4th Class #sym.dot.c Violet #h(2mm) Epistle Jas 1:22\-27 #h(2mm) Gospel John 16:23\-30] \
+ #text(size: 6.5pt)[4th Class #sym.dot.c White #h(2mm) Epistle Jas 1:22\-27 #h(2mm) Gospel John 16:23\-30] \
#text(size: 6.5pt)[Commemoration Sts. Alexander & Companions]
]
diff --git a/test/test_golden.ml b/test/test_golden.ml
index d680720..3a6f3f5 100644
--- a/test/test_golden.ml
+++ b/test/test_golden.ml
@@ -1315,6 +1315,34 @@ let test_rogation_wednesday_yields_to_a_feast_2026 () =
"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=[]"
+(* ---- Rogation Monday/Tuesday colour, RG 119/128/88 (celebrant-rubrics-
+ phase1 Bug 1 fix, 2026-08-22; data/ef/expected-divergences-lms.sexp's
+ now-closed L6, data/ef/expected-divergences.sexp's reopened C8) ----
+
+ {!Rite_ef.Temporal_ef.temporal}'s Rogation Monday/Tuesday branch used to
+ hardcode [Colour.Violet] with no citation. RG 119 assigns white to the
+ de-Tempore Office and Mass from the Paschal Vigil to the Pentecost Vigil
+ exclusive -- Easter+36/+37 sit inside that window -- and RG 128's own
+ exhaustive four-case violet list never names Rogation days; RG 88 ("de
+ Litaniis minoribus nihil fit in Officio") is why -- the violet belongs
+ to the Rogation MASS/procession alone, not the day's own Office. Fixed
+ to [season_colour s], the same call every other Paschaltide feria makes.
+
+ 2028 pins BOTH days at once (unlike the LMS witness, which only reaches
+ one day per fixture window): neither is impeded by a competing
+ sanctoral feast that year, so both are observed outright, both white.
+ Verified directly against `date -d`: Easter 2028-04-16, so 22/23 May are
+ Easter+36/+37. *)
+let test_rogation_monday_white_2028 () =
+ check ~msg:"2028: Rogation Monday is white (RG 119), not violet" 2028 5 22
+ "2028-05-22 monday season=paschaltide week=6 slug=ef-rogation-monday rank=class-4 colour=white \
+ subject=temporal name_la=- comms=[] in=- out=[]"
+
+let test_rogation_tuesday_white_2028 () =
+ check ~msg:"2028: Rogation Tuesday is white (RG 119), not violet" 2028 5 23
+ "2028-05-23 tuesday season=paschaltide week=6 slug=ef-rogation-tuesday rank=class-4 colour=white \
+ subject=temporal name_la=- comms=[] in=- out=[]"
+
(* ---- The bissextile (leap-year) calendarium footnote, bissextile-shift
task, 2026-08-22 ----
@@ -1572,6 +1600,10 @@ let suite =
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;
+ Alcotest.test_case "RG119/128: Rogation Monday is white, not violet (2028)" `Quick
+ test_rogation_monday_white_2028;
+ Alcotest.test_case "RG119/128: Rogation Tuesday is white, not violet (2028)" `Quick
+ test_rogation_tuesday_white_2028;
Alcotest.test_case "bissextile footnote: Matthias moves 24->25 February (leap, 2044)" `Quick
test_bissextile_matthias_leap_2044;
Alcotest.test_case "bissextile footnote: Matthias unaffected (common, 2025)" `Quick
diff --git a/test/test_lms_ordo.ml b/test/test_lms_ordo.ml
index 00fb32c..ed1c871 100644
--- a/test/test_lms_ordo.ml
+++ b/test/test_lms_ordo.ml
@@ -582,17 +582,25 @@ let make_suite ~label ~fixture_path ~fixture_sha256 ~window_first ~window_last ~
| Some { MF.said = None; _ } -> "NONE (said, unexpectedly outside Votive)"
| None -> "NONE")
in
- (* Two REAL, STRUCTURAL shapes found running this comparison (see
- data/ef/expected-divergences-lms.sexp's own L5/L6 for the full
- citations) -- neither is a fixed date list, both a property of the
- day itself, because both recur every year the underlying condition
- holds, not on a fixed calendar date the way L4 above does. Matched
- by PREDICATE, not by date, for the same reason L2's own note gives
- for why it is prose-only rather than wired through the shared
- [expected_rows] mechanism: the count varies window to window (L5:
- 6/5/6; L6: 1/0/0), so a single static count cannot check it, and
- [make_suite] threads the per-window expected totals directly
- (~expected_gloria_l5/~expected_gloria_l6 below) instead. *)
+ (* L5 is the one REAL, STRUCTURAL shape still open (see
+ data/ef/expected-divergences-lms.sexp's own L5 for the full
+ citation) -- not a fixed date list, a property of the day itself,
+ because it recurs every year the underlying condition holds, not on a
+ fixed calendar date the way L4 above does. Matched by PREDICATE, not
+ by date, for the same reason L2's own note gives for why it is
+ prose-only rather than wired through the shared [expected_rows]
+ mechanism: the count varies window to window (L5: 6/5/6), so a single
+ static count cannot check it, and [make_suite] threads the per-window
+ expected total directly (~expected_gloria_l5 below) instead.
+
+ L6 is CLOSED (celebrant-rubrics-phase1, Bug 1 fix, this task):
+ {!Rite_ef.Temporal_ef.temporal}'s Rogation Monday/Tuesday branch no
+ longer hardcodes [Colour.Violet] -- see temporal_ef.ml's own citation
+ on that branch and data/ef/expected-divergences-lms.sexp's L6 entry
+ for the fix and its measured blast radius. [is_l6_rogation_colour] and
+ ~expected_gloria_l6 are kept, at 0 in every window, as the regression
+ net the same way L3's own bissextile fix keeps a predicate whose count
+ is now provably zero rather than deleting it. *)
let is_l5_lenten_commemoration (o : ordo_row) (c : colitur_row) =
(* NOT a Gloria defect (CORRECTED, l5-f3-readjudication task,
2026-08-22 -- data/ef/expected-divergences-lms.sexp's own L5 has
@@ -613,15 +621,17 @@ let make_suite ~label ~fixture_path ~fixture_sha256 ~window_first ~window_last ~
(not c.c_gloria) && Option.value o.gloria ~default:false && c.c_has_commemoration && c.c_rank = V.Class3
in
let is_l6_rogation_colour (o : ordo_row) (c : colitur_row) =
- (* Root-caused to a DIFFERENT, pre-existing bug this comparison merely
- surfaced -- {!Rite_ef.Temporal_ef.temporal}'s own Rogation Monday/
- Tuesday branch hardcodes [Colour.Violet] with no RG citation at
- all, but the Ordo shows this exact date "FERIA IV Cl W" (white,
- matching Paschaltide's own [season_colour] and RG88's "nihil fit in
- Officio" -- the Office, hence its colour, is unchanged by the
- Rogation, only the Mass TEXT is proper) -- so [gloria]'s own 432(b)
- violet guard wrongly fires. NOT a Gloria defect and NOT fixed here
- (out of this task's own scope; see the task report). *)
+ (* CLOSED (celebrant-rubrics-phase1, Bug 1 fix). Was root-caused to a
+ DIFFERENT, pre-existing bug this comparison merely surfaced --
+ {!Rite_ef.Temporal_ef.temporal}'s own Rogation Monday/Tuesday branch
+ used to hardcode [Colour.Violet] with no RG citation at all, where
+ the Ordo shows this exact date "FERIA IV Cl W" (white, matching
+ Paschaltide's own [season_colour] and RG88's "nihil fit in Officio"
+ -- the Office, hence its colour, is unchanged by the Rogation, only
+ the Mass TEXT is proper) -- so [gloria]'s own 432(b) violet guard
+ wrongly fired. Now fixed at the source (temporal_ef.ml); this
+ predicate and its own ~expected_gloria_l6 count (0 in every window)
+ are kept as the regression net, not deleted. *)
(not c.c_gloria) && Option.value o.gloria ~default:false
&& (contains_substring c.c_slug ~needle:"rogation-monday" || contains_substring c.c_slug ~needle:"rogation-tuesday")
in
@@ -788,7 +798,7 @@ let suite_2023_2024 =
I-class Sunday that admits him not even as a commemoration (RG16(a)),
so his own Mass is not said anywhere in this window any more. *)
~expected_bvm_votive:12 ~expected_proper:181 ~expected_common:2 ~expected_preceding_sunday:61
- ~expected_ascension_week:1 ~expected_gloria_l5:5 ~expected_gloria_l6:1
+ ~expected_ascension_week:1 ~expected_gloria_l5:5 ~expected_gloria_l6:0
let suite_2024_2025 =
make_suite ~label:"lms-ordo-2024-2025" ~fixture_path:"fixtures/lms-ordo-2024-2025.sexp"
diff --git a/test/test_rubrics_ef.ml b/test/test_rubrics_ef.ml
index 71f180d..6679702 100644
--- a/test/test_rubrics_ef.ml
+++ b/test/test_rubrics_ef.ml
@@ -598,6 +598,24 @@ let test_431a_mirrors_te_deum_true () =
let test_432a_mirrors_te_deum_false () =
check_gloria "432(a): mirrors [te_deum]=false (an ordinary Advent feria)" 2025 12 1 false
+(* ---- The Rogation Monday/Tuesday cascade (celebrant-rubrics-phase1 Bug 1
+ fix, 2026-08-22): {!Rite_ef.Temporal_ef.temporal} used to hardcode
+ [Colour.Violet] on these two days with no citation, which silenced
+ [gloria] via 432(b) even though 237(e)'s own Paschaltide-feria branch
+ already said [te_deum]=true underneath. Fixed to [season_colour] (RG
+ 119: white from the Paschal Vigil to the Pentecost Vigil exclusive; RG
+ 128's own violet list never names Rogation days; RG 88 -- the violet
+ belongs to the Rogation MASS, not the Office this field describes).
+ 2028-05-22/23: neither day is impeded that year (test_golden.ml's own
+ [test_rogation_{monday,tuesday}_white_2028] pins the colour side of the
+ same fix), so both resolve to white and both now say the Gloria, MIRROR
+ OF [te_deum] via 431(a) once 432(b)'s violet guard no longer fires --
+ MATCHING the LMS Ordo witness (2023-2024, 2024-05-06, "FERIA IV Cl W
+ ... Gl"). Reverting temporal_ef.ml's fix alone (mutation-checked while
+ building this task) turns both [false], the pre-fix answer. *)
+let test_rogation_monday_gloria_2028 () = check_gloria "Rogation Monday: white -> Gloria said (2028)" 2028 5 22 true
+let test_rogation_tuesday_gloria_2028 () = check_gloria "Rogation Tuesday: white -> Gloria said (2028)" 2028 5 23 true
+
(* ---- Domain-wide sanity, task requirement 5: "every violet day must be
false (RG 432 b), and every Requiem must be false (432 d)". Two
invariants, checked over every day {!Cal.year} resolves -- [Cal.year],
@@ -794,6 +812,8 @@ let suite =
Alcotest.test_case "432(d): All Souls' Day (transferred)" `Quick test_432d_all_souls;
Alcotest.test_case "431(a): mirrors [te_deum]=true" `Quick test_431a_mirrors_te_deum_true;
Alcotest.test_case "432(a): mirrors [te_deum]=false" `Quick test_432a_mirrors_te_deum_false;
+ Alcotest.test_case "Rogation Monday: white -> Gloria said (2028)" `Quick test_rogation_monday_gloria_2028;
+ Alcotest.test_case "Rogation Tuesday: white -> Gloria said (2028)" `Quick test_rogation_tuesday_gloria_2028;
Alcotest.test_case "domain sanity: every violet day has [gloria]=false (sample)" `Quick
test_domain_violet_implies_no_gloria_sample;
Alcotest.test_case "domain sanity: every Requiem day has [gloria]=false (sample)" `Quick