summaryrefslogtreecommitdiff
path: root/test/test_precedence_ef.ml
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-21 15:07:44 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-21 15:07:44 +0200
commit35c11c7ccf95acfb35a7ec34edfa86d92da60e4a (patch)
tree63e2e0c8f9c6317f68a52961c7770f72c3ba79c0 /test/test_precedence_ef.ml
parent0eae32f67145065b0e4960650ae06c293fd9f272 (diff)
parentf3ac69d0a679200a48716be065a0fa2e70a2c6da (diff)
downloadcolitur-35c11c7ccf95acfb35a7ec34edfa86d92da60e4a.tar.gz
colitur-35c11c7ccf95acfb35a7ec34edfa86d92da60e4a.zip
merge: RG 33's third omission trigger
The last unbuilt clause in the EF module. A II/III-class vigil is omitted entirely when the feast it precedes fails to keep its own day -- 1 744 days across 1583-9999, three verified shapes, zero unexplained. Rule and vigil inventory independently confirmed by O'Connell 1964, outside the Divinum Officium -> missalemeum -> lectio lineage. The 10 affected days in 2005-2050 are allow-listed as C39; no external day-level witness exists, which the note states rather than glosses.
Diffstat (limited to 'test/test_precedence_ef.ml')
-rw-r--r--test/test_precedence_ef.ml10
1 files changed, 7 insertions, 3 deletions
diff --git a/test/test_precedence_ef.ml b/test/test_precedence_ef.ml
index 3f3e070..6bd7bfd 100644
--- a/test/test_precedence_ef.ml
+++ b/test/test_precedence_ef.ml
@@ -370,7 +370,7 @@ let test_all_souls_yields_to_sunday () =
in
let all_souls = cand ~origin:P.Sanctoral ~layer:PE.universal_layer "ef-all-souls" in
let rules =
- { P.band = (fun c cd -> PE.band c cd);
+ { P.vigil_feast = (fun _ -> None); band = (fun c cd -> PE.band c cd);
disposition = (fun ~winner:_ ~loser:_ -> P.Omit);
admit = (fun ~observed:_ ~temporal:_ cs -> List.map (fun (c, p, (_ : int)) -> (c, p)) cs) }
in
@@ -1443,7 +1443,11 @@ let test_admit_uses_precedence_not_slug_when_they_disagree () =
[rules] deliberately reused, not rebuilt per test, since it is always the
same three real functions. *)
-let real_rules = { P.band = PE.band; disposition = PE.disposition; admit = PE.admit }
+(* The real EF ruleset, including RG 33's third-trigger hook -- a stub here
+ would make any test built on [real_rules] blind to it. *)
+let real_rules =
+ { P.vigil_feast = PE.vigil_feast; band = PE.band; disposition = PE.disposition;
+ admit = PE.admit }
(* I-class day, zero admitted: the strongest form of "does not vanish" --
EVERY commemoration due is dropped (RG 111: "none save one privileged",
@@ -1929,7 +1933,7 @@ let test_all_souls_transfers_end_to_end () =
in
let all_souls = cand ~origin:P.Sanctoral ~layer:PE.universal_layer "ef-all-souls" in
let rules =
- { P.band = PE.band; disposition = PE.disposition;
+ { P.vigil_feast = (fun _ -> None); band = PE.band; disposition = PE.disposition;
admit = (fun ~observed:_ ~temporal:_ cs -> List.map (fun (c, p, (_ : int)) -> (c, p)) cs) }
in
let resolution = P.resolve rules day_ctx ~temporal:sunday ~sanctoral:[ all_souls ] in