aboutsummaryrefslogtreecommitdiff
path: root/test/test_differential.ml
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_differential.ml')
-rw-r--r--test/test_differential.ml23
1 files changed, 21 insertions, 2 deletions
diff --git a/test/test_differential.ml b/test/test_differential.ml
index eb83c0e..c9173d6 100644
--- a/test/test_differential.ml
+++ b/test/test_differential.ml
@@ -667,7 +667,22 @@ let is_bvm_saturday_row (c : row) diffs =
[season_colour] is already white, so a real bug there could slip
through unnoticed by colour alone) would be silently absorbed here
too. *)
- diffs = [ Colour_f ] && String.equal c.weekday "saturday" && String.equal c.rank "class-4"
+ (* WIDENED (2026-08-17): [First_f]/[Gospel_f] join [Colour_f], because the
+ CAUSE did not change, it grew. colitur builds RG 78's office (hence white
+ where lectio is green) and now also says RG 309(a)'s own Mass for it,
+ where lectio -- having no such office at all -- says the feria's. One
+ cause, one entry: splitting the colour from the citations would file two
+ ids against a single divergence.
+
+ At least one difference is required, not merely a subset, so this can
+ never match a day that agrees entirely. The colour difference is ABSENT
+ in Christmastide and Paschaltide (RG 119 already made those seasons
+ white), which is why those rows carry citations alone -- the
+ [c.colour = "white"] guard still holds there, being colitur's own value
+ either way. *)
+ subset diffs [ Colour_f; First_f; Gospel_f ]
+ && (List.mem Colour_f diffs || List.mem First_f diffs || List.mem Gospel_f diffs)
+ && String.equal c.weekday "saturday" && String.equal c.rank "class-4"
&& String.equal c.colour "white" && String.equal c.subject "bvm"
(* C19 (task 8, branch ef-lectionary): the Time-after-Epiphany WEEK-INDEX
@@ -1252,7 +1267,11 @@ let layer_c_reason (l : row) (c : row) diffs =
diffs = [ First_f; Gospel_f ] && String.equal l.first "-" && String.equal l.gospel "-"
&& List.mem c.slug lectio_no_reading_slugs
then Some "C20"
- else if List.mem c.slug rg69_one_hop_slugs && diffs = [ First_f; Gospel_f ] then Some "C25"
+ (* C25 -- CLOSED, BVM Saturday Mass (2026-08-17), predicate removed: 0 rows.
+ Its days are unoccupied IV-class Saturdays, so they carry RG 78's office
+ and now RG 309(a)'s Mass for it, which answers before step 3's walkback
+ is reached. They still differ from lectio, but for C17's cause, and are
+ filed there. See data/ef/expected-divergences.sexp's own closure note. *)
else if List.mem c.slug holy_week_slugs && diffs = [ First_f; Gospel_f ] then Some "C23"
else if String.equal c.slug passion_tuesday_slug && diffs = [ First_f; Gospel_f ] then Some "C26"
else if String.equal c.slug advent_ember_sat_slug && diffs = [ First_f; Gospel_f ] then Some "C27"