aboutsummaryrefslogtreecommitdiff
path: root/tests/ttypechecker.nim
blob: 5e76c2fc568023d527af23a38ed29bf694b2046e (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
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"