From abff8e648d3ee5ac3840e16fbec3e94fce352205 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Tue, 11 Aug 2026 13:26:15 +0200 Subject: rite(ef): named temporal days, vigils and the Nativity octave The I-class feasts of the Lord (RG 91 entries 1-3), the Nativity, Ascension and Pentecost vigils (RG 28-34), and the days within the Octave of the Nativity (RG 64-70). Christ the King is the last Sunday of October per the 1960 calendar, not the OF's last Sunday before Advent. Rogation Wednesday coincides with the Ascension vigil; with no precedence framework until Plan 3, temporal emits the higher-ranked vigil. --- test/test_temporal_ef.ml | 43 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) (limited to 'test/test_temporal_ef.ml') diff --git a/test/test_temporal_ef.ml b/test/test_temporal_ef.ml index eb672d9..1353c43 100644 --- a/test/test_temporal_ef.ml +++ b/test/test_temporal_ef.ml @@ -54,12 +54,49 @@ let test_seasons () = Alcotest.(check string) "Sat after Pentecost 30 May 2026" "paschaltide" (season_str (d 2026 5 30)); Alcotest.(check string) "Trinity 31 May 2026" "time-after-pentecost" (season_str (d 2026 5 31)) -let suite_extra_seasons = +let named_slug dt = match T.named dt with + | Some (_, slug, _, _, _) -> slug + | None -> "" + +let test_named_feasts () = + (* Easter 2026 = 5 April. *) + Alcotest.(check string) "nativity" "ef-nativity" (named_slug (d 2026 12 25)); + Alcotest.(check string) "nativity vigil" "ef-nativity-vigil" (named_slug (d 2026 12 24)); + Alcotest.(check string) "circumcision" "ef-circumcision" (named_slug (d 2026 1 1)); + Alcotest.(check string) "epiphany" "ef-epiphany" (named_slug (d 2026 1 6)); + Alcotest.(check string) "ash wednesday" "ef-ash-wednesday" (named_slug (d 2026 2 18)); + Alcotest.(check string) "passion sunday" "ef-passion-sunday" (named_slug (d 2026 3 22)); + Alcotest.(check string) "palm sunday" "ef-palm-sunday" (named_slug (d 2026 3 29)); + Alcotest.(check string) "easter" "ef-easter-sunday" (named_slug (d 2026 4 5)); + Alcotest.(check string) "low sunday" "ef-low-sunday" (named_slug (d 2026 4 12)); + Alcotest.(check string) "ascension vigil" "ef-ascension-vigil" (named_slug (d 2026 5 13)); + Alcotest.(check string) "ascension" "ef-ascension" (named_slug (d 2026 5 14)); + Alcotest.(check string) "pentecost vigil" "ef-pentecost-vigil" (named_slug (d 2026 5 23)); + Alcotest.(check string) "pentecost" "ef-pentecost" (named_slug (d 2026 5 24)); + Alcotest.(check string) "trinity" "ef-trinity" (named_slug (d 2026 5 31)); + Alcotest.(check string) "corpus christi" "ef-corpus-christi" (named_slug (d 2026 6 4)); + Alcotest.(check string) "sacred heart" "ef-sacred-heart" (named_slug (d 2026 6 12)); + Alcotest.(check string) "an ordinary day is not named" "" (named_slug (d 2026 7 15)) + +let test_christ_the_king () = + (* 1960 calendar: the LAST Sunday of October, not the OF's last before Advent. *) + Alcotest.(check string) "2026" "2026-10-25" (D.to_iso8601 (T.christ_the_king 2026)); + Alcotest.(check bool) "always a Sunday" true (D.weekday (T.christ_the_king 2026) = D.Sun); + Alcotest.(check string) "slug" "ef-christ-the-king" (named_slug (T.christ_the_king 2026)) + +let test_nativity_octave () = + Alcotest.(check string) "29 Dec" "ef-nativity-octave-day-5" (named_slug (d 2026 12 29)); + Alcotest.(check string) "31 Dec" "ef-nativity-octave-day-7" (named_slug (d 2026 12 31)) + +let suite_extra = [ Alcotest.test_case "advent start" `Quick test_advent_start; - Alcotest.test_case "seasons" `Quick test_seasons ] + Alcotest.test_case "seasons" `Quick test_seasons; + Alcotest.test_case "named feasts" `Quick test_named_feasts; + Alcotest.test_case "christ the king" `Quick test_christ_the_king; + Alcotest.test_case "nativity octave" `Quick test_nativity_octave ] let suite = ( "Rite_ef", [ Alcotest.test_case "vocab roundtrips" `Quick test_vocab_roundtrips; Alcotest.test_case "slug words" `Quick test_slug_words ] - @ suite_extra_seasons ) + @ suite_extra ) -- cgit v1.3