67 lines
2.1 KiB
Plaintext
67 lines
2.1 KiB
Plaintext
;; Function To Be Tested: char<=
|
|
;;
|
|
;; Source: CLtL p. 237
|
|
;;
|
|
;; Chapter 13: Characters Section 2: Predicates on Characters
|
|
;;
|
|
;; Created By: Peter Reidy
|
|
;;
|
|
;; Creation Date: 1 May 86
|
|
;;
|
|
;; Last Update: 9 December 86
|
|
;;
|
|
;; Filed As: {eris}<lispcore>cml>test>13-2-char-le.test
|
|
;;
|
|
;; Syntax: char<= char &rest more-characters
|
|
;;
|
|
;; Function Description: true if each character is <= the next, nil otherwise
|
|
;;
|
|
;; Argument(s): characters
|
|
;;
|
|
;; Returns: non-nil or nil
|
|
;;
|
|
(do-test-group char<=-group
|
|
;;; The inequality must be true for all items, and the function is nospread. Hence no every loop.
|
|
(do-test "upper-case characters in order are all char<="
|
|
(char<= #\A #\B #\C #\D #\E #\F #\G #\H #\I #\J #\K #\L #\M #\N #\O #\P #\Q #\R #\S #\T #\U #\V #\W #\X #\Y #\Z)
|
|
) ; do-test "upper-case characters in order are all char<="
|
|
;;
|
|
(do-test "lower-case characters in order are all char<="
|
|
(char<= #\a #\b #\c #\d #\e #\f #\g #\h #\i #\j #\k #\l #\m #\n #\o #\p #\q #\r #\s #\t #\u #\v #\w #\x #\y #\z)
|
|
) ; do-test "lower-case characters in order are all char<="
|
|
;;
|
|
(do-test "digits in order are all char<="
|
|
(char<= #\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9)
|
|
) ; do-test "digits in order are all char<="
|
|
;;
|
|
(do-test "#\9 <= #\A or #\Z #\0"
|
|
(or (char<= #\9 #\A ) (char<= #\Z #\0))
|
|
) ; do-test "#\9 <= #\A or #\Z #\0"
|
|
;;
|
|
(do-test "#\9 <= #\a or #\z #\0"
|
|
(or (char<= #\9 #\a ) (char<= #\z #\0))
|
|
) ; do-test "#\9 <= #\a or #\z #\0"
|
|
;;
|
|
(do-test "char<= accepts char= characters"
|
|
(and
|
|
(char<= #\c #\c #\c #\c #\c #\c #\c #\c)
|
|
(char<= #\7 #\7 #\7 #\7 #\7 #\7 #\7 #\7 #\8)
|
|
(char<= #\0 #\0 #\0 #\2 #\2 #\2 #\4 #\4 #\4)
|
|
) ; and
|
|
) ; do-test "char<= accepts char= characters"
|
|
;;
|
|
(do-test "char<= accepts non-alphanumeric characters"
|
|
(every 'char<= '(#\newline #\") '(#\newline #\"))
|
|
) ; do-test "char<= accepts non-alphanumeric characters"
|
|
;;
|
|
(do-test "char<=: every character must <="
|
|
(not (or
|
|
(char<= #\X #\X #\X #\W #\X #\X #\X #\X)
|
|
(char<= #\5 #\5 #\5 #\5 #\5 #\5 #\4)
|
|
))
|
|
) ; do-test "char<=: every character must <="
|
|
)
|
|
STOP
|
|
|
|
|