summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-13 08:17:36 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-13 08:17:36 +0200
commitdaca7de424be106c1cc5f3aa01950eda3b767a0f (patch)
treeec228073abc4597642da7435f9ca77e977e07cf9 /test
parent6319c8d5c012db40206b463dc912a1edf7aeec5d (diff)
downloadcolitur-daca7de424be106c1cc5f3aa01950eda3b767a0f.tar.gz
colitur-daca7de424be106c1cc5f3aa01950eda3b767a0f.zip
test(differential): split the Holy Family/Baptism collision out of C1 (C15)
Before this task's Holy Family fix, colitur's generic Sunday fallback lost outright to the fixed Commemoration of the Baptism of the Lord on 13 January whenever it fell on a Sunday, producing the SAME slug lectio's own tridentine-calendar.ini shows there -- squarely inside C1's own 6-13 January blanket (only Season differed). Now that Holy Family (RG 17(b)) correctly outranks the fixed Baptism and excludes it as a commemoration (RG 91 entry 14, RG 112(a)), colitur's own slug on those seven dates (2008, 2013, 2019, 2030, 2036, 2041, 2047) changes to ef-time-after-epiphany-sunday-1 -- a genuine identity divergence against lectio, which has no Holy Family at all. C1's own predicate does not absorb it (jan_6_13_slug has no entry for that slug), so it surfaced as unexplained, exactly the check the task brief asked for: split it out into its own cited entry rather than widening C1's predicate to swallow it silently. C1's own expected_rows moves 368 -> 361 (back to its pre-rebootstrap value, for a third and different reason than either of the first two moves recorded in its own note); the new C15 covers the 7 rows, gated on the literal date list AND colitur's own slug, the same identity guard C1/C6/C8/C14 already apply.
Diffstat (limited to 'test')
-rw-r--r--test/test_differential.ml34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/test_differential.ml b/test/test_differential.ml
index 89e6873..94adb2c 100644
--- a/test/test_differential.ml
+++ b/test/test_differential.ml
@@ -471,6 +471,35 @@ let nativity_octave_day_slugs =
note for the full account of why that was wrong). *)
let joseph_annunciation_collision_dates_2005_2050 = [ "2008-04-01"; "2035-04-03"; "2046-04-03" ]
+(* C15 -- ef-rg112-rg110 task: SPLIT OUT of C1's own blanket 6-13 January
+ window, not a new kind of divergence -- the same discipline C13 (now
+ closed, see the header above) already established for this exact date,
+ and the SAME check the task brief asked for explicitly ("if C1 now
+ absorbs a different observed celebration, split it out"). Before this
+ task, colitur had no Holy Family office at all: on these seven dates (13
+ January, the one civil day it falls on a Sunday in the 2005-2050 window
+ -- 2008, 2013, 2019, 2030, 2036, 2041, 2047), colitur's own generic
+ Sunday fallback happened to lose outright to the fixed Commemoration of
+ the Baptism of the Lord (RG16(a)'s existing "festum Domini beats an
+ ordinary Sunday" mechanism, subject Lord already present in the
+ REBOOTSTRAPPED data), producing the SAME slug lectio's own tridentine-
+ calendar.ini shows for that date ("commemoration-of-the-baptism-of-the-
+ lord") -- only [Season] differed (RG 72-73 vs lectio's own 6 January
+ boundary), squarely inside C1's own shape. Now that Holy Family is built
+ (RG 17(b)) and correctly outranks the fixed Baptism (RG 91 entry 14,
+ "primum mobilia, deinde fixa"; RG 112(a) excludes the Baptism as a
+ commemoration too, both this task's own precedence_ef.ml changes),
+ colitur's own slug on these seven dates changes to
+ "ef-time-after-epiphany-sunday-1" (Holy Family's own, unchanged from the
+ ordinary-Sunday key it always carried, temporal_ef.ml's own comment on
+ why) -- a GENUINE identity divergence against lectio, which has no Holy
+ Family at all and still shows the fixed Baptism observed there. Gated on
+ the literal 7-date list AND colitur's own slug (the same guard C1/C6/C8/
+ C14 already apply, fix round 1's own finding 1: a predicate must pin
+ WHICH celebration it is about, not only the date). *)
+let holy_family_baptism_collision_dates_2005_2050 =
+ [ "2008-01-13"; "2013-01-13"; "2019-01-13"; "2030-01-13"; "2036-01-13"; "2041-01-13"; "2047-01-13" ]
+
(* [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). *)
@@ -516,6 +545,11 @@ let layer_c_reason (l : row) (c : row) diffs =
every predicate -- geometry, not this pin. *)
&& String.equal c.slug "joseph-spouse-of-the-bl-virgin-mary"
then Some "C14"
+ else if
+ List.mem l.date holy_family_baptism_collision_dates_2005_2050
+ && subset diffs [ Season; Slug_f ]
+ && String.equal c.slug "ef-time-after-epiphany-sunday-1"
+ then Some "C15"
else None
(* ---------------------------------------------------------------------- *)