-
Notifications
You must be signed in to change notification settings - Fork 0
/
tests.rkt
127 lines (117 loc) · 2.51 KB
/
tests.rkt
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#lang racket
(require rackunit "nock.rkt")
(test-case
"cell"
(check-equal?
(cell 0 1 2 3)
'(0 1 2 . 3))
(check-equal?
(cell 0 (cell 10 11) 2 3)
'(0 (10 . 11) 2 . 3))
(check-equal?
(cell 0 (cell 10 11) 2 (cell 30 31 32))
'(0 (10 . 11) 2 30 31 . 32))
(check-equal?
(cell 0 (cell 10 11 (cell 120 (cell 1210 1211 1212) (cell 1220 1221))) 2 (cell 30 (cell 310 311 312 313) (cell 320 321)))
'(0 (10 11 . (120 (1210 1211 . 1212) 1220 . 1221)) 2 30 (310 311 312 . 313) 320 . 321)))
(test-case
"wut"
(check-equal?
(wut (cell 0 1))
0)
(check-equal?
(wut 0)
1))
(test-case
"lus"
(check-equal?
(lus (cell 0 1 2))
(cell 0 1 2))
(check-equal?
(lus 5)
6))
(test-case
"tis"
(check-equal?
(tis (cell (cell 0 1 2) (cell 0 1 2)))
0)
(check-equal?
(tis (cell 5 5))
0)
(check-equal?
(tis (cell (cell 0 1 2) (cell 0 1 2 3)))
1)
(check-equal?
(tis (cell 5 6))
1))
(test-case
"fas"
(check-equal?
(fas (cell 1 (cell 4 5) 6 14 15))
(cell (cell 4 5) 6 14 15))
(check-equal?
(fas (cell 2 (cell 4 5) 6 14 15))
(cell 4 5))
(check-equal?
(fas (cell 3 (cell 4 5) 6 14 15))
(cell 6 14 15))
(check-equal?
(fas (cell 4 (cell 4 5) 6 14 15))
4)
(check-equal?
(fas (cell 5 (cell 4 5) 6 14 15))
5)
(check-equal?
(fas (cell 6 (cell 4 5) 6 14 15))
6)
(check-equal?
(fas (cell 7 (cell 4 5) 6 14 15))
(cell 14 15))
(check-equal?
(fas (cell 14 (cell 4 5) 6 14 15))
14)
(check-equal?
(fas (cell 15 (cell 4 5) 6 14 15))
15))
(test-case
"tar"
(check-equal?
(tar (cell (cell (cell 4 5) (cell 6 14 15)) (cell 0 7)))
(cell 14 15))
(check-equal?
(tar (cell 42 (cell (cell 4 0 1) (cell 3 0 1))))
(cell 43 1))
(check-equal?
(tar (cell 42 1 153 218))
(cell 153 218))
(check-equal?
(tar (cell 77 (cell 2 (cell 1 42) (cell 1 1 153 218))))
(cell 153 218))
(check-equal?
(tar (cell (cell 132 19) (cell 4 0 3)))
20)
(check-equal?
(tar (cell (cell 132 19) (cell 10 37 (cell 4 0 3))))
20)
(check-equal?
(tar (cell 42 7 (cell 4 0 1) (cell 4 0 1)))
44)
(check-equal?
(tar (cell 42 8 (cell 4 0 1) (cell 4 0 3)))
43)
(check-equal?
(tar (cell 42 6 (cell 1 0) (cell 4 0 1) (cell 1 233)))
43)
(check-equal?
(tar (cell 42 6 (cell 1 1) (cell 4 0 1) (cell 1 233)))
233))
(test-case
"nock-eval"
(check-equal?
(nock-eval [42 [8 [1 0] 8 [1 6 [5 [0 7] 4 0 6] [0 6] 9 2 [0 2] [4 0 6] 0 7] 9 2 0 1]])
41))
(test-case
"noun->string"
(check-equal?
(noun->string (cell (cell 0 1) 2 3 (cell 4 (cell 5 6 (cell 7 8) 9)) (cell 9 10)))
"[[0 1] 2 3 [4 5 6 [7 8] 9] 9 10]"))