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.ml26
1 files changed, 22 insertions, 4 deletions
diff --git a/test/test_differential.ml b/test/test_differential.ml
index e12cd9a..cf5b95f 100644
--- a/test/test_differential.ml
+++ b/test/test_differential.ml
@@ -413,6 +413,23 @@ let jan_6_13_slug slug =
let nativity_octave_day_slugs =
[ "ef-nativity-octave-day-5"; "ef-nativity-octave-day-6"; "ef-nativity-octave-day-7" ]
+(* C12 (ef-rebootstrap, 2026-08-12): the exact 15 slugs data/ef/sanctoral.sexp
+ re-bootstrapped from `rank = commemoration` to a real class-3 feast (the
+ source's own SHA-256 moved 6a25e634... -> 1b303ef2...) -- a literal list,
+ not a date-range or slug-prefix pattern, per the SAME discipline the
+ comment above this one already states for C1/C6 (fix round 1, finding 1):
+ a slug outside this exact set must fail through to [None], not be
+ silently absorbed by a citation about a different set of saints. Only 7
+ of the 15 are ever actually reachable here (the other 8 never collide
+ with a plain class-4 feria anywhere in 2005-2050), but the guard is
+ written against the full set colitur's own data now carries, not the
+ narrower subset this one 46-year window happens to exercise. *)
+let fixed_iii_class_reclassified_slugs =
+ [ "benedict"; "cyril-of-jerusalem"; "forty-holy-martyrs-of-sebaste"; "frances-rome";
+ "francis-of-paola"; "gabriel-the-archangel"; "gregory-the-great"; "isidore-of-seville";
+ "john-damascene"; "john-of-capistrano"; "john-of-god"; "patrick"; "sts-felicitas-perpetua";
+ "thomas-aquinas"; "vincent-ferrer" ]
+
(* [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). *)
@@ -456,10 +473,11 @@ let layer_c_reason (l : row) (c : row) diffs =
the user has ruled: follow the oracle (register ยง6.0 has the full
account). The Purification is `Lord` again, colitur observes it
outright on those six 2-February Sundays, matching lectio's own
- `class = lord` exactly -- no divergence to allow-list. Left
- unimplemented here deliberately, not merely absent by oversight: this
- comment is the record that C12 existed and was removed, should a
- future reader wonder why the numbering skips it. *)
+ `class = lord` exactly -- no divergence to allow-list. That C12 was
+ removed, not merely unused -- superseded by the DIFFERENT C12 below,
+ ef-rebootstrap (2026-08-12), reusing the freed id. *)
+ else if List.mem c.slug fixed_iii_class_reclassified_slugs && subset diffs [ Slug_f; Rank; Colour_f ]
+ then Some "C12"
else None
(* ---------------------------------------------------------------------- *)