;; Function To Be Tested: FIXP ;; ;; Source: IRM, p 9.1 ;; ;; Chapter 9: Conditionals And Iterative Statements ;; Section 1: Data Type Predicates ;; ;; Created By: Henry Cate III ;; ;; Creation Date: March 11, 1987 ;; ;; Last Update: ;; ;; Filed As: {eris}test>DataTypes>FixP.test ;; ;; (do-test "test simple cases" (and (eq 5 (il:fixp 5)) (equal 100000 (il:fixp 100000)) (eq nil (il:fixp 10.13)) (eq nil (il:fixp 'a-fixp)) (eq nil (il:fixp "a string")) )) (do-test "Test fixed numbers" (and (eq 123 (il:fixp 123)) (eq -4567 (il:fixp -4567)) (equal 1237654 (il:fixp 1237654)) (equal -4567321 (il:fixp -4567321)) )) (do-test "Test go on own function" (flet ((temp-small nil 2) (temp-large nil 100000)) (test-defun temp-fun nil -325) (and (eq 2 (il:fixp (temp-small))) (equal 100000 (il:fixp (temp-large))) (equal -325 (il:fixp (temp-fun))) ))) (do-test "Test work against system functions" (and (eq 3 (il:fixp (third '(1 2 3 4 5)))) (equal 3300000 (il:fixp (car '(3300000 2.2 1.1)))) (equal -23123456 (il:fixp (second '(1 -23123456 4.5 6)))) )) (do-test "Try various types of Litatoms" (and (eq nil (il:fixp 'ABCDEFGHIJKLMNOPQRSTUVWXYZ)) (eq nil (il:fixp 'A-couple-dashs)) (eq nil (il:fixp 'Numbers-1234567890)) (eq nil (il:fixp 'il:other-packags)) (eq nil (il:fixp 'il:other-packagsNumbers-1234567890)) (eq nil (il:fixp 'il:other-packagsA-couple-dashs)) (eq nil (il:fixp T)) (eq nil (il:fixp nil)) (eq nil (il:fixp ())) (eq nil (il:fixp '())) (eq nil (il:fixp (list))) (eq nil (il:fixp (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:fixp (tee))) (eq nil (il:fixp (nill))) (eq nil (il:fixp (temp-litatom))) (eq nil (il:fixp (temp-string))) (eq nil (il:fixp (temp-fun))) (eq nil (il:fixp temp-litatom)) ))) (do-test "Stop on fixps from system functions" (and (eq nil (il:fixp (car '(#*1001 '#( 5 4 3 2 1))))) (eq nil (il:fixp (second '(#\. #\k)))) )) (do-test "Test arrays aren't fixps" (and (eq nil (il:fixp (make-array '(2 2)))) (eq nil (il:fixp (make-array '(6 6 6) :element-type '(or integer string)))) (eq nil (il:fixp (make-array 5 :element-type 'bit :initial-contents '(0 0 1 1 0)))) (eq nil (il:fixp (make-array '(5 5) :displaced-to (make-array '(6 6 6) :element-type '(or integer string))))) (eq nil (il:fixp (make-array 50 :initial-element 0))) (eq nil (il:fixp (make-array 20 :element-type 'string-char :initial-element #\0))) )) (do-test "Test other datatypes aren't fixps" (and (eq nil (il:fixp #\backspace)) ; character (eq nil (il:fixp #\*)) ; character (eq nil (il:fixp #\.)) ; character (eq nil (il:fixp (make-hash-table))) ; hash table (eq nil (il:fixp (car (list-all-packages)))) ; packages (eq nil (il:fixp (pathname nil))) ; pathname (eq nil (il:fixp *random-state*)) ; ramdom state (eq nil (il:fixp #'cons)) ; compiled function (eq nil (il:fixp (copy-readtable))) ; readtable (eq nil (il:fixp #*1001)) ; simple-bit-vector (eq nil (il:fixp "twine")) ; simple-string (eq nil (il:fixp (make-synonym-stream nil))) ; stream (eq nil (il:fixp '#( 5 4 3 2 1))) ; vector )) STOP