summaryrefslogtreecommitdiff
path: root/test/test_temporal_ef.ml
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_temporal_ef.ml')
-rw-r--r--test/test_temporal_ef.ml28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/test_temporal_ef.ml b/test/test_temporal_ef.ml
new file mode 100644
index 0000000..f7851c1
--- /dev/null
+++ b/test/test_temporal_ef.ml
@@ -0,0 +1,28 @@
+module V = Rite_ef.Vocab_ef
+
+let test_vocab_roundtrips () =
+ List.iter
+ (fun s ->
+ Alcotest.(check bool) "season string roundtrip" true
+ (V.season_of_string (V.season_to_string s) = Some s))
+ V.seasons;
+ List.iter
+ (fun r ->
+ Alcotest.(check bool) "rank string roundtrip" true
+ (V.rank_of_string (V.rank_to_string r) = Some r))
+ V.ranks;
+ Alcotest.(check int) "eight seasons" 8 (List.length V.seasons);
+ Alcotest.(check int) "four ranks" 4 (List.length V.ranks)
+
+(* Slug words are lectio's lectionary-key vocabulary, deliberately distinct from
+ the season names (spec ยง4.4, plan correction 2). *)
+let test_slug_words () =
+ Alcotest.(check string) "paschaltide slugs as easter" "easter" (V.season_slug_word V.Paschaltide);
+ Alcotest.(check string) "christmastide slugs as christmas" "christmas"
+ (V.season_slug_word V.Christmastide);
+ Alcotest.(check string) "season name differs" "paschaltide" (V.season_to_string V.Paschaltide)
+
+let suite =
+ ( "Rite_ef",
+ [ Alcotest.test_case "vocab roundtrips" `Quick test_vocab_roundtrips;
+ Alcotest.test_case "slug words" `Quick test_slug_words ] )