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
|
import soon/typechecker
import std/[unittest]
test "Testing typechecker":
for t in ["2024","0001","9999"]:
check checkType(t) == "year"
for t in ["01","1","31"]:
check checkType(t) == "day"
for t in ["1w","1W","9W"]:
check checkType(t) == "firstweek"
for t in ["1l","1L","9L"]:
check checkType(t) == "lastweek"
for t in [
"(jan 1 2024)",
"(Jan 31 2024)",
"(January 1 2024)",
"(2024 1 jan)",
"(1 jan 2024)",
"(jan 1)",
"(jan 31)",
"(january 1)"]:
check checkType(t) == "dategroup"
for t in ["2024-2025","0000-9999"]:
check checkType(t) == "rangeyear"
for t in ["1-2","01-2","01-02","1-02","1-31","10-31"]:
check checkType(t) == "rangeday"
for t in [
"00:00",
"23:23",
"00:00",
"23:00",
"01:00-12:30",
"1:30-12:30",
"1am",
"1pm",
"1AM",
"1PM",
"1am-2pm",
"1PM-2PM",
"1:00pm-2:00pm",
"12:00am-12:00pm"]:
check checkType(t) == "time"
for t in [
"j%2",
"J%2",
"J%999",
"j%2+1",
"j%2-1",
"(j%2-1)",
"(j % 2 - 1)"]:
check checkType(t) == "julian"
for t in ["Jan","jan","JANUARY","JAN","jAN"]:
check checkType(t) == "month"
for t in ["Mon","mon","MONDAY","MON","mON"]:
check checkType(t) == "weekday"
for t in ["jan-feb","JAN-FEB","Jan-Feb","january-february"]:
check checkType(t) == "rangemonth"
for t in ["mon-tue","MON-TUE","Mon-Tue","monday-tuesday"]:
check checkType(t) == "rangeweekday"
for t in ["(Jan 31 2024)-(Feb 2 2024)","(2024 1 december)-(2025 2 january)"]:
check checkType(t) == "rangedategroup"
for t in ["!@#$","foo",""]:
check checkType(t) == "unknown"
|