summaryrefslogtreecommitdiff
path: root/test/test_validate.ml
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-15 00:16:35 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-15 00:16:35 +0200
commit124d7e2261c721c4a49f7203efc276088c7cb217 (patch)
tree9aa82ff189c924e9327236d77acd6891114108cb /test/test_validate.ml
parentf1d90a83ece4d8301061e8247e23ec2af8293ab4 (diff)
downloadcolitur-124d7e2261c721c4a49f7203efc276088c7cb217.tar.gz
colitur-124d7e2261c721c4a49f7203efc276088c7cb217.zip
kernel+ef: resolve readings, chain steps 1 and 2
Liturgical_day.citations has read "always empty until Plan 4" since Plan 3; it is now filled. Rite.t gains a readings function, rite-supplied for the same reason transfer_target is: what a day with no proper falls back to is a rubric, not a universal. Calendar calls it and passes its own temporal function as the callback the rite needs to reach another date. Steps 1 and 2 only: the observed celebration's own proper, else the day's own temporal slug. Nothing encodes "Lent has daily propers" -- the presence of an entry is the discriminator.
Diffstat (limited to 'test/test_validate.ml')
-rw-r--r--test/test_validate.ml6
1 files changed, 5 insertions, 1 deletions
diff --git a/test/test_validate.ml b/test/test_validate.ml
index 501dd2e..9fa3c5c 100644
--- a/test/test_validate.ml
+++ b/test/test_validate.ml
@@ -276,10 +276,14 @@ module Synthetic = struct
defaults against the default empty [layer], since nothing ever contests
the temporal office there) so the resolution fixtures further down can
override them without duplicating every other field. *)
+ (* No fixture here exercises citations -- readings is a harmless constant
+ [], the same role the other placeholder defaults above play. *)
+ let readings ~observed:_ ~temporal:_ ~date:_ ~temporal_at:_ = []
+
let rite ?(vocab = vocab) ?(anchors = fun _ -> []) ?(season_runs = [ A; B ]) ?(rules = rules)
?(transfer_target = fun _ origin _ -> origin) temporal : (season, rank) Rite.t =
{ Rite.id = "synthetic"; vocab; year_start; temporal; anchors; rules; season_runs;
- transfer_target }
+ transfer_target; readings }
(* Empty by default: every check built before Task 12 exercises the
TEMPORAL-only pass, where an empty layer is exactly the fixture that