aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/text/text-calendar.scm
blob: 43064ad1a660f62669e243a518960afb3bfc76f8 (plain)
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
(define-module (test text-calendar)
  :use-module (srfi srfi-64)
  :use-module (srfi srfi-71)
  :use-module (srfi srfi-88)
  :use-module (datetime)
  :use-module (text calendar))

;;; TODO these tests are locale-dependant

(test-equal "Start and end week are partial"
  '("    oktober 2023    "
    "må ti on to fr lö sö"
    "                   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               ")
  (graphical-calendar (date year: 2023 month: oct) wkst: mon))

(test-equal "End week is full, start is partial"
  '("     april 2023     "
    "må ti on to fr lö sö"
    "                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"
    "                    ")
  (graphical-calendar (date year: 2023 month: apr) wkst: mon))

(test-equal "Start week is full, end is partial"
  '("    oktober 2023    "
    "sö må ti on to fr lö"
    " 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            "
    "                    ")
  (graphical-calendar (date year: 2023 month: oct) wkst: sun))

(test-equal "Exact lineup"
  '("   februari 1800    "
    "to fr lö sö må ti on"
    " 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"
    "                    "
    "                    ")
  (graphical-calendar (date year: 1800 month: feb) wkst: thu))

(test-equal "Exact lineup"
  '("   februari 1800    "
    "to fr lö sö må ti on"
    " 1  2  3  4  5  6  7"
    " 8  9 10 11 12 13 14"
    "15 16 17 \x1b[7m18\x1b[m 19 20 21"
    "22 23 24 25 26 27 28"
    "                    "
    "                    ")
  (graphical-calendar (date year: 1800 month: feb day: 18) wkst: thu))



;;; This also tests that month overflow into next year works
(test-equal "Displayed calendar + overflowing into next year"
 (string-append
  "   november 2023         december 2023          januari 2024    \n"
  "må ti on to fr lö sö  må ti on to fr lö sö  må ti on to fr lö sö\n"
  "       1  2  3  4  5               1  2  3   1  2  3  4  5  6  7\n"
  " 6  7  8  9 10 11 12   4  5  6  7  8  9 10   8  9 10 11 12 13 14\n"
  "13 14 15 16 17 18 19  11 12 13 14 15 16 17  15 16 17 18 19 20 21\n"
  "20 21 22 23 24 25 26  18 19 20 21 22 23 24  22 23 24 25 26 27 28\n"
  "27 28 29 30           25 26 27 28 29 30 31  29 30 31            \n"
  "                                                                \n")
 (with-output-to-string
   (lambda ()
    (cal-3 (date year: 2023 month: dec)))))


'((text calendar))