aboutsummaryrefslogtreecommitdiff
path: root/test/cli.t
blob: 77968e642483a22bca01acdc9471b15b68088d2f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
Easter and its Easter-relative movable feasts for a year:

  $ colitur easter 2026
  easter 2026-04-05
  ash-wednesday 2026-02-18
  palm-sunday 2026-03-29
  ascension 2026-05-14
  pentecost 2026-05-24
  corpus-christi 2026-06-04

A year outside the supported domain is rejected (exit 2):

  $ colitur easter 1000
  colitur: year 1000 out of range 1583..9999
  [2]

No/garbage arguments give a usage error (exit 2):

  $ colitur
  colitur: usage: colitur easter <year> | colitur temporal <year> | colitur day <year>
  [2]

The EF temporal cycle for a year, one line per day:

  $ colitur temporal 2026 | head -3
  2026-01-01 thursday christmastide - ef-circumcision class-1 white
  2026-01-02 friday christmastide - ef-christmas-1-friday class-4 white
  2026-01-03 saturday christmastide - ef-christmas-1-saturday class-4 white

  $ colitur temporal 2026 | wc -l
  365

  $ colitur temporal 2026 | grep -c '^2026-04-05 '
  1

  $ colitur temporal 2026 | grep '^2026-04-05 '
  2026-04-05 sunday paschaltide 1 ef-easter-sunday class-1 white

A year outside the supported domain is rejected (exit 2):

  $ colitur temporal 1000
  colitur: year 1000 out of range 1583..9999
  [2]

The resolved EF calendar for a year (Task 11) -- temporal AND sanctoral,
occurrence and transfers applied: one line per civil-year day,
"YYYY-MM-DD weekday season week slug rank colour [+commemoration-slug]...".

  $ colitur day 2026 | wc -l
  365

Easter is the observed day exactly once, and carries no commemoration (an
impeded I class day admits at most one PRIVILEGED commemoration, RG 111, and
nothing outranks Easter to be impeded by it in the first place):

  $ colitur day 2026 | grep -c '^2026-04-05 '
  1
  $ colitur day 2026 | grep '^2026-04-05 '
  2026-04-05 sunday paschaltide 1 ef-easter-sunday class-1 white

Ash Wednesday: I class (RG 91 entry 7), violet, no numbered week (it falls 4
days before Lent I's own origin -- rite_ef/temporal_ef.ml's [week]):

  $ colitur day 2026 | grep '^2026-02-18 '
  2026-02-18 wednesday lent - ef-ash-wednesday class-1 violet

Christmas: I class, white (RG 91 entry 1):

  $ colitur day 2026 | grep '^2026-12-25 '
  2026-12-25 friday christmastide - ef-nativity class-1 white

All Souls (2 Nov, RG 91 entry 8) end to end: 2 Nov 2025 is a Sunday (verified
independently -- 1 Jan 2025 is a Wednesday, day-of-year 306, (3+305) mod 7 =
0 = Sunday), so entry 8 yields to it (still an ordinary II-class Sunday,
"sunday" in season time-after-pentecost, colour green -- the week number
itself is not re-asserted here, already covered by test_temporal_ef.ml); RG
95 then transfers All Souls (I class, not a Sunday, not a vigil) and RG 96
places it on 3 Nov, the next day that is not I or II class:

  $ colitur day 2025 | grep -c 'commemoration-of-all-souls'
  1
  $ colitur day 2025 | grep '^2025-11-02 ' | sed -E 's/ [0-9]+ ef-time-after-pentecost-sunday-[0-9]+ / <week> ef-time-after-pentecost-sunday-<n> /'
  2025-11-02 sunday time-after-pentecost <week> ef-time-after-pentecost-sunday-<n> class-2 green
  $ colitur day 2025 | grep '^2025-11-03 '
  2025-11-03 monday time-after-pentecost 21 commemoration-of-all-souls class-1 black

(week 21: Pentecost 2025 is 8 June (colitur easter 2025); 8 Jun - 3 Nov is
148 days, floor_div(148, 7) = 21 -- rite_ef/temporal_ef.ml's own [week]
formula, hand-verified before promoting this line, not merely printed and
trusted.)

All Souls observed directly on 2 Nov in a year where it does not fall on a
Sunday: 2 Nov 2026 is a Monday (1 Jan 2026 is a Thursday, same day-of-year
306 offset, (4+305) mod 7 = 1 = Monday):

  $ colitur day 2026 | grep -c 'commemoration-of-all-souls'
  1
  $ colitur day 2026 | grep '^2026-11-02 '
  2026-11-02 monday time-after-pentecost 23 commemoration-of-all-souls class-1 black

(week 23: Pentecost 2026 is 24 May (colitur easter 2026); 24 May - 2 Nov is
162 days, floor_div(162, 7) = 23 -- same formula, same independent check.)

A year outside the supported domain is rejected (exit 2):

  $ colitur day 1000
  colitur: year 1000 out of range 1583..9999
  [2]