From 957a6d88ed447be16aa8c7e71250f4c9b87a832b Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Thu, 13 Aug 2026 15:57:26 +0200 Subject: data(ef): close and derive the RG 91 entry 27 allow-list rows The BVM Saturday office is now genuinely correct, so both comparators' allow-lists move -- every count derived from the harnesses' own failure output, never transcribed or guessed. lectio differential (data/ef/expected-divergences.sexp, C17, new, colitur): lectio builds no equivalent office at all, so it keeps showing the plain season colour on every otherwise-unoccupied Class4 Saturday where colitur now shows white. Season, slug and rank all still agree (the office deliberately reuses the ordinary ferial slug), so Colour_f alone is the complete diff set -- gated on colitur's own rank/weekday/colour rather than a date list, the same shape M2 used, at 416 rows over 2005-2050. missalemeum oracle (data/ef/expected-divergences-missalemeum.sexp): M2 is CLOSED, REMOVED, the same shape as this file's own M4/M6/M7/M9/M12/ M14/M17 precedents -- not re-adjudicated to a different verdict, gone because the colour divergence it named no longer occurs on any of its former 22 dates. What is left on all 22 is Observed_identity_unresolved alone (colitur's BVM-Saturday candidate is temporal-origin and deliberately carries no English name) -- exactly M18's own shape, not a distinct citation any more. Keeping M2 as a separate id would have kept silently absorbing these rows under a stale "colour differs" citation whose own reason had stopped firing (subset's own diff-set test admits a SMALLER set than the one named) -- the same "count proving cardinality where identity was required" trap this project's review process watches for. M18's own expected_rows moves 373 -> 395 accordingly. --- test/test_differential.ml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'test/test_differential.ml') 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 (* ---------------------------------------------------------------------- *) -- cgit v1.3