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, 23 insertions, 0 deletions
diff --git a/test/test_differential.ml b/test/test_differential.ml
index bea1bf4..3f416fd 100644
--- a/test/test_differential.ml
+++ b/test/test_differential.ml
@@ -516,6 +516,28 @@ let holy_name_fallback_dates_2005_2050 =
"2034-01-02"; "2035-01-02"; "2036-01-02"; "2040-01-02"; "2041-01-02"; "2045-01-02";
"2046-01-02"; "2047-01-02" ]
+(* C17 -- ef-bvm-saturday task: RG 91 entry 27 ("Officium sanctae Mariae in
+ sabbato" -- see data/ef/expected-divergences.sexp's own C17 note for the
+ full RG 78/RG 120(b) citation). lectio builds no equivalent office at all
+ (checked directly against its own tridentine-calendar.ini/generator, the
+ same "genuine upstream gap, not a colitur bootstrap miss" shape C15/C16
+ already document for their own gaps) -- it shows the ordinary season
+ colour on every otherwise-unoccupied Class4 Saturday where colitur's own
+ RG 78 fix now shows white. Season, slug and rank all still agree --
+ temporal_ef.ml's own [bvm_saturday_names] citation ("Slug" paragraph)
+ deliberately REUSES the ordinary ferial slug rather than minting a new
+ one, precisely so this predicate's diff set stays [Colour_f] alone, never
+ [Slug_f] too. Gated on colitur's own [rank]/[weekday]/[colour] rather
+ than a date list, the same shape M2 (data/ef/expected-divergences-
+ missalemeum.sexp) already uses for the identical reason: this
+ population is large (a large fraction of all Saturdays domain-wide) and
+ entirely formulaic (RG 78's own condition, "otherwise unoccupied
+ IV-class Saturday", reduces exactly to this triple), not a short,
+ individually-interesting list of dates the way C14/C15/C16 above are. *)
+let is_bvm_saturday_row (c : row) diffs =
+ diffs = [ Colour_f ] && String.equal c.weekday "saturday" && String.equal c.rank "class-4"
+ && String.equal c.colour "white"
+
(* [layer_c_reason l c diffs] returns the [data/ef/expected-divergences.sexp]
[id] this row-pair's remaining (post Layer A/B) diff set belongs to, or
[None] if nothing here explains it (a genuine, uncovered failure). *)
@@ -571,6 +593,7 @@ let layer_c_reason (l : row) (c : row) diffs =
&& subset diffs [ Slug_f; Rank ]
&& String.equal c.slug "ef-holy-name"
then Some "C16"
+ else if is_bvm_saturday_row c diffs then Some "C17"
else None
(* ---------------------------------------------------------------------- *)