aboutsummaryrefslogtreecommitdiff
path: root/test/test_lms_ordo.ml
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_lms_ordo.ml')
-rw-r--r--test/test_lms_ordo.ml52
1 files changed, 31 insertions, 21 deletions
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"