112 lines
3.2 KiB
Plaintext
112 lines
3.2 KiB
Plaintext
;; Function To Be Tested: ArrayP
|
|
;;
|
|
;; Source: IRM, p 9.2
|
|
;;
|
|
;; Chapter 9: Conditionals And Iterative Statements
|
|
;; Section 1: Data Type Predicates
|
|
;;
|
|
;; Created By: Henry Cate III
|
|
;;
|
|
;; Creation Date: March 17, 1987
|
|
;;
|
|
;; Last Update:
|
|
;;
|
|
;; Filed As: {eris}<lispcore>test>DataTypes>ArrayP.test
|
|
;;
|
|
;;
|
|
|
|
|
|
(do-test "test simple cases"
|
|
(let* ((temp-array1 (il:array 5))
|
|
(temp-array2 (il:array 10 'il:FLOATP 3.141592 0)))
|
|
(and
|
|
(equal temp-array1 (il:arrayp temp-array1))
|
|
(equal temp-array2 (il:arrayp temp-array2))
|
|
(eq nil (il:arrayp -5))
|
|
(eq nil (il:arrayp 1000000))
|
|
(eq nil (il:arrayp 'a-floatp))
|
|
(eq nil (il:arrayp 12.34))
|
|
)))
|
|
|
|
|
|
(do-test "Test lists of various things"
|
|
(let* ((temp-array1 (il:array 10 'IL:POINTER NIL 1))
|
|
(temp-array2 (il:array 20 'IL:FIXP 2 0))
|
|
(temp-array3 (il:array 1 'IL:WORD)))
|
|
(and
|
|
(equal temp-array1 (il:arrayp temp-array1))
|
|
(equal temp-array2 (il:arrayp temp-array2))
|
|
(equal temp-array3 (il:arrayp temp-array3))
|
|
)))
|
|
|
|
|
|
(do-test "Test go on own function"
|
|
(flet ((temp-small nil (il:array 10 'IL:POINTER NIL 1)))
|
|
(test-defun temp-fun nil (il:array 1 'IL:BYTE))
|
|
(and
|
|
(il:arrayp (temp-small))
|
|
(il:arrayp (temp-fun))
|
|
)))
|
|
|
|
|
|
(do-test "Try various types of Litatoms"
|
|
(and
|
|
(eq nil (il:arrayp 'ABCDEFGHIJKLMNOPQRSTUVWXYZ))
|
|
(eq nil (il:arrayp 'A-couple-dashs))
|
|
(eq nil (il:arrayp 'Numbers-1234567890))
|
|
|
|
(eq nil (il:arrayp 'il:other-packags))
|
|
(eq nil (il:arrayp 'il:other-packagsNumbers-1234567890))
|
|
(eq nil (il:arrayp 'il:other-packagsA-couple-dashs))
|
|
|
|
(eq nil (il:arrayp T))
|
|
(eq nil (il:arrayp nil))
|
|
(eq nil (il:arrayp ()))
|
|
(eq nil (il:arrayp '()))
|
|
(eq nil (il:arrayp (list)))
|
|
(eq nil (il:arrayp (eq 1 2)))
|
|
))
|
|
|
|
|
|
(do-test "Test stop on own function"
|
|
(flet ((tee nil t) (nill nil nil) (temp-litatom nil 'litatom)
|
|
(temp-string nil "string"))
|
|
(test-defun temp-fun nil 'litatom)
|
|
(test-setq temp-litatom 'il:temp-pointed)
|
|
(and
|
|
(eq nil (il:arrayp (tee)))
|
|
(eq nil (il:arrayp (nill)))
|
|
(eq nil (il:arrayp (temp-litatom)))
|
|
(eq nil (il:arrayp (temp-string)))
|
|
(eq nil (il:arrayp (temp-fun)))
|
|
(eq nil (il:arrayp temp-litatom))
|
|
)))
|
|
|
|
|
|
(do-test "Stop on arrayps from system functions"
|
|
(and
|
|
(eq nil (il:arrayp (car '(#*1001 '#( 5 4 3 2 1)))))
|
|
(eq nil (il:arrayp (second '(#\. #\k))))
|
|
))
|
|
|
|
|
|
(do-test "Test other datatypes aren't lists"
|
|
(and
|
|
(eq nil (il:arrayp #\backspace)) ; character
|
|
(eq nil (il:arrayp #\*)) ; character
|
|
(eq nil (il:arrayp #\.)) ; character
|
|
(eq nil (il:arrayp (make-hash-table))) ; hash table
|
|
(eq nil (il:arrayp (car (list-all-packages)))) ; packages
|
|
(eq nil (il:arrayp (pathname nil))) ; pathname
|
|
(eq nil (il:arrayp *random-state*)) ; ramdom state
|
|
(eq nil (il:arrayp #'cons)) ; compiled function
|
|
(eq nil (il:arrayp (copy-readtable))) ; readtable
|
|
(eq nil (il:arrayp #*1001)) ; simple-bit-vector
|
|
(eq nil (il:arrayp "twine")) ; simple-string
|
|
(eq nil (il:arrayp (make-synonym-stream nil))) ; stream
|
|
(eq nil (il:arrayp '#( 5 4 3 2 1))) ; vector
|
|
))
|
|
|
|
STOP
|
|
|