forked from carp-lang/Carp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
char.carp
145 lines (143 loc) · 3.97 KB
/
char.carp
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
(use Char)
(load "Test.carp")
(use Test)
(deftest test
(assert-equal test
(String.head " ")
\space
"space literal works")
(assert-equal test
(String.head "\t")
\tab
"tab literal works")
(assert-equal test
(String.head "\t")
\tab
"tab literal works")
(assert-equal test
(String.head "\n")
\newline
"newline literal works")
(assert-equal test
(String.head "\b")
\backspace
"backspace literal works")
(assert-equal test
(String.head "\r")
\return
"return literal work")
(assert-equal test
(String.head "\f")
\formfeed
"formfeed literal works")
(assert-equal test
"Π"
&(str \u03a0)
"unicode literals work")
(assert-equal test
"a"
&(str \a)
"str works with ASCII")
(assert-equal test
"ñ"
&(str \ñ)
"str works with Latin1")
(assert-equal test
"😲"
&(str \😲)
"str works with Emoji")
(assert-true test
(= \a \a)
"char = works as expected I")
(assert-true test
(= &\a &\a)
"char = works as expected II")
(assert-true test
(/= \a \b)
"char /= works as expected I")
(assert-true test
(/= &\a &\b)
"char /= works as expected II")
(assert-true test
(< \a \b)
"char < works as expected I")
(assert-true test
(< &\a &\b)
"char < works as expected II")
(assert-true test
(> \b \a)
"char > works as expected I")
(assert-true test
(> &\b &\a)
"char > works as expected II")
(assert-equal test
0
(meaning &\0)
"meaning works as expected 0")
(assert-equal test
9
(meaning &\9)
"meaning works as expected 9")
(assert-true test
(upper-case? \A)
"upper-case? works as expected I")
(assert-false test
(upper-case? \a)
"upper-case? works as expected II")
(assert-false test
(upper-case? \#)
"upper-case? works as expected III")
(assert-true test
(lower-case? \a)
"lower-case? works as expected I")
(assert-false test
(lower-case? \A)
"lower-case? works as expected II")
(assert-false test
(lower-case? \#)
"lower-case? works as expected III")
(assert-true test
(alpha? \a)
"alpha? works as expected I")
(assert-true test
(alpha? \A)
"alpha? works as expected II")
(assert-false test
(alpha? \#)
"alpha? works as expected III")
(assert-false test
(alpha? \0)
"alpha? works as expected III")
(assert-false test
(num? \a)
"num? works as expected I")
(assert-false test
(num? \A)
"num? works as expected II")
(assert-false test
(num? \#)
"num? works as expected III")
(assert-true test
(num? \0)
"num? works as expected III")
(assert-true test
(alphanum? \a)
"alphanum? works as expected I")
(assert-true test
(alphanum? \A)
"alphanum? works as expected II")
(assert-false test
(alphanum? \#)
"alphanum? works as expected III")
(assert-true test
(alphanum? \0)
"alphanum? works as expected III")
(assert-equal test
48b
(to-byte \0)
"to-byte works as expected")
(assert-equal test
\A
(from-byte 65b)
"from-byte works as expected")
)