SBCL-style Unicode support: one character = one Unicode codepoint.
[jscl.git] / tests / characters.lisp
1 ;; CHAR=
2 (test (char= (code-char 127744) (code-char 127744)))
3
4 ;; CHARACTERP
5 (test (characterp #\a))
6 (test (characterp (code-char 65)))
7 (test (char= #\A (code-char 65)))
8 (test (not (characterp 10)))
9 (test (not (characterp "a")))
10 (test (not (characterp "ab")))
11 (test (characterp (code-char 127744)))
12
13 ;; CODE-CHAR, CHAR-CODE
14 (test (char= #\A (code-char 65)))
15 (test (= 65 (char-code #\A)))
16 (test (= 127744 (char-code (code-char 127744))))
17
18 ;; CHAR-TO-STRING
19 (test (= 1 (string-length (char-to-string (code-char 127744)))))
20
21 ;; CHAR-UPCASE
22 (test (char= #\A (char-upcase #\a)))
23 (test (char= #\A (char-upcase #\A)))
24 (test (char= (code-char 223) (char-upcase (code-char 223))))  ;; changes length, so you get the original back
25 (test (char= (code-char 127744) (char-upcase (code-char 127744))))  ;; no upper case
26
27 ;; CHAR-DOWNCASE
28 (test (char= #\a (char-downcase #\a)))
29 (test (char= #\a (char-downcase #\A)))
30 (test (char= (code-char 223) (char-downcase (code-char 223))))  ;; already lower case
31 (test (char= (code-char 127744) (char-downcase (code-char 127744))))  ;; no lower case