aboutsummaryrefslogtreecommitdiff
path: root/test/test_validate.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_validate.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_validate.ml')
-rw-r--r--test/test_validate.ml12
1 files changed, 6 insertions, 6 deletions
diff --git a/test/test_validate.ml b/test/test_validate.ml
index 4d5458f..8b3014a 100644
--- a/test/test_validate.ml
+++ b/test/test_validate.ml
@@ -247,7 +247,7 @@ module Synthetic = struct
fixtures further down override [rules] (and supply a non-empty
[layer]), each with its own small, deliberately-shaped ruleset. *)
let rules : (season, rank) P.rules =
- { P.band = (fun _ _ -> 0);
+ { P.vigil_feast = (fun _ -> None); band = (fun _ _ -> 0);
disposition = (fun ~winner:_ ~loser:_ -> P.Omit);
admit = (fun ~observed:_ ~temporal:_ _ -> []) }
@@ -425,7 +425,7 @@ module Synthetic = struct
let dup_layer = Layer.of_entries ~id:"dup" ~name:"dup" [ dup_entry ]
let dup_rules : (season, rank) P.rules =
- { P.band = (fun _ c -> match c.P.origin with P.Temporal -> 0 | P.Sanctoral -> 10);
+ { P.vigil_feast = (fun _ -> None); band = (fun _ c -> match c.P.origin with P.Temporal -> 0 | P.Sanctoral -> 10);
disposition = (fun ~winner:_ ~loser:_ -> P.Commemorate P.Ordinary);
admit =
(fun ~observed:_ ~temporal:_ cs ->
@@ -464,7 +464,7 @@ module Synthetic = struct
let guard_layer = Layer.of_entries ~id:"guard" ~name:"guard" [ guard_winner_entry; guard_loser_entry ]
let guard_rules : (season, rank) P.rules =
- { P.band = (fun _ c -> match c.P.origin with P.Temporal -> 50 | P.Sanctoral -> 10);
+ { P.vigil_feast = (fun _ -> None); band = (fun _ c -> match c.P.origin with P.Temporal -> 50 | P.Sanctoral -> 10);
disposition =
(fun ~winner:_ ~loser ->
match loser.P.cel.Cel.rank with R1 -> P.Transfer | R2 -> P.Commemorate P.Ordinary);
@@ -493,7 +493,7 @@ module Synthetic = struct
| x :: xs -> if n <= 0 then [] else x :: adm_take (n - 1) xs
let adm_rules : (season, rank) P.rules =
- { P.band = (fun _ c -> match c.P.origin with P.Temporal -> 0 | P.Sanctoral -> 10);
+ { P.vigil_feast = (fun _ -> None); band = (fun _ c -> match c.P.origin with P.Temporal -> 0 | P.Sanctoral -> 10);
disposition = (fun ~winner:_ ~loser:_ -> P.Commemorate P.Ordinary);
admit =
(fun ~observed:_ ~temporal:_ cs ->
@@ -520,7 +520,7 @@ module Synthetic = struct
let collide_layer = Layer.of_entries ~id:"collide" ~name:"collide" [ collide_a_entry; collide_b_entry ]
let collide_rules : (season, rank) P.rules =
- { P.band =
+ { P.vigil_feast = (fun _ -> None); band =
(fun ctx c ->
match c.P.origin with
| P.Temporal -> if D.compare ctx.P.date collide_d1 = 0 then 5 else 50
@@ -543,7 +543,7 @@ module Synthetic = struct
let clean_sanctoral_layer = Layer.of_entries ~id:"clean" ~name:"clean" [ clean_sanctoral_entry ]
let clean_sanctoral_rules : (season, rank) P.rules =
- { P.band = (fun _ c -> match c.P.origin with P.Temporal -> 0 | P.Sanctoral -> 10);
+ { P.vigil_feast = (fun _ -> None); band = (fun _ c -> match c.P.origin with P.Temporal -> 0 | P.Sanctoral -> 10);
disposition = (fun ~winner:_ ~loser:_ -> P.Commemorate P.Ordinary);
admit = (fun ~observed:_ ~temporal:_ cs -> List.map (fun (c, p, (_ : int)) -> (c, p)) cs) }
end