STRING-TRIM and friends.
[jscl.git] / tests / characters.lisp
index 9ec833d..74679f6 100644 (file)
 (test (not (char>= #\e #\d #\b #\c #\a)))
 ;; (char> #\z #\A) =>  implementation-dependent
 ;; (char> #\Z #\a) =>  implementation-dependent
-;; (test (char-equal #\A #\a))
+(test (char-equal #\A #\a))
 ;; (stable-sort (list #\b #\A #\B #\a #\c #\C) #'char-lessp) =>  (#\A #\a #\b #\B #\c #\C)
 ;; (stable-sort (list #\b #\A #\B #\a #\c #\C) #'char<) => implementation-dependent
 
-;; TODO: char/=, char<, etc.
-
 ;; CHARACTER
 (test (equal #\a (character #\a)))
 (test (equal #\a (character "a")))
 (test (null (digit-char-p #\a)))
 (test (= 10 (digit-char-p #\A 11)))
 (test (= 10 (digit-char-p #\a 11)))
-;; TODO: does the mapcar/lambda thing work here?
+;; (mapcar #'(lambda (radix)
+;;              (map 'list #'(lambda (x) (digit-char-p x radix))
+;;                   "059AaFGZ"))
+;;          '(2 8 10 16 36))
 
 ;; GRAPHIC-CHAR-P
 (test (graphic-char-p #\G))
 (test (char= (code-char 223) (char-downcase (code-char 223))))  ;; already lower case
 (test (char= (code-char 127744) (char-downcase (code-char 127744))))  ;; no lower case
 
-;; TODO: UPPER-CASE-P, LOWER-CASE-P, BOTH-CASE-P
+;; UPPER-CASE-P, LOWER-CASE-P, BOTH-CASE-P
+(test (upper-case-p #\A))
+(test (not (upper-case-p #\a)))
+(test (both-case-p #\a))
+(test (not (both-case-p #\5)))
+(test (not (lower-case-p #\5)))
+(test (not (upper-case-p #\5)))
+(test (not (upper-case-p (code-char 127744))))
 
 ;; CODE-CHAR, CHAR-CODE
 (test (char= #\A (code-char 65)))
 ;; CHAR-INT
 (test (= (char-int #\A) (char-int #\A)))  ;; can be pretty much anything, as long as it's consistent
 
-;; CHAR-TO-STRING (not actually part of the characters dictionary)
-(test (= 1 (string-length (char-to-string (code-char 127744)))))
+(test (= 1 (length (string (code-char 127744)))))
 
 ;; CHAR-CODE-LIMIT
 (test (< 95 char-code-limit 10000000))