1
0
mirror of synced 2026-05-04 23:26:25 +00:00
Files
Interlisp.medley/internal/test/LANGUAGE/AUTO/6-2-2-NUMBERP.TEST

76 lines
1.7 KiB
Plaintext

;; Function To Be Tested: numberp
;;
;; Source: CLtL p. 74
;;
;; Chapter 6: Predicates Section 2-2: Specific Data Type Predicates
;;
;; Created By: Peter Reidy
;;
;; Creation Date: 18 September 86
;;
;; Last Update: Feb 4, 1987 - Jim Blum - removed :5 keyword from last test
;;
;; Filed As: {eris}<lispcore>cml>test>6-2-2-numberp.test
;;
;; Syntax: numberp object
;;
;; Function Description: True iff object is any type of number, NIL otherwise.
;;
;; Argument(s): object any cml object
;;
;; Returns: non-nil or NIL
;;
(do-test-group numberp-group
:before
(progn
(test-setq five 5)
(test-defun numberptest (object &optional (expected-value nil))
(and
(eq (numberp object) (typep object 'number))
;; Non-nil for true cases, NIL for others.
(cond
(expected-value
(numberp object))
(t (null (numberp object)))
) ; cond
) ; and
) ; test-defun
) ; progn
;;
;; Returns NIL for true cases 18 September. See AR 6493.
(do-test numberp-with-numbers-test
(every #'(lambda (object) (numberptest object t))
(list
(random most-positive-fixnum) ; integers
(- (random most-positive-fixnum))
five
'5
(eval '|FIVE|)
3/2 ; ratios
-16/2
#o-17/32
#x11/eff
#7r33/66
(eval 'pi) ; float
17.02020e12
#c(47 3/2) ; complex
(caddr (list "5" '(5) (apply '+ (list pi 3 #7r12/24)) (copy-readtable)))
) ; list
) ; every
) ; do-test numberp-with-numbers-test
;;
(do-test numberp-with-non-numbers-test
(every 'numberptest
(list
'(5)
"5"
(list 5)
#\5
'five
) ; list
) ; every
) ; do-test numberp-with-non-numbers-test
) ; do-test-group
STOP