X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=tests%2Fseq.impure.lisp;h=dc5a6e3bdd882fefb505c8eed5d3b5acfba613c4;hb=3aaed55326303bb377c4821c5e83b2e4e9c538fc;hp=5aea01c41d28c3bbbfc468a548f3083216950ccc;hpb=c33612272b00979a34861d962f5e7bd47f36ae6e;p=sbcl.git diff --git a/tests/seq.impure.lisp b/tests/seq.impure.lisp index 5aea01c..dc5a6e3 100644 --- a/tests/seq.impure.lisp +++ b/tests/seq.impure.lisp @@ -296,14 +296,35 @@ ;; MAKE-SEQUENCE (assert-type-error (make-sequence 'cons 0)) (assert-type-error (make-sequence 'null 1)) + ;; KLUDGE: I'm not certain that this test actually tests for what + ;; it should test, in that the type deriver and optimizers might + ;; be too smart for the good of an exhaustive test system. + ;; However, it makes me feel good. -- CSR, 2002-10-18 (assert (null (make-sequence 'null 0))) (assert (= (length (make-sequence 'cons 3)) 3)) ;; and NIL is not a valid type for MAKE-SEQUENCE (assert-type-error (make-sequence 'nil 0)) - ;; tests for MAP/MERGE/CONCATENATE/COERCE to come. + ;; COERCE + (assert-type-error (coerce #(1) 'null)) + (assert-type-error (coerce #() 'cons)) + (assert (null (coerce #() 'null))) + (assert (= (length (coerce #(1) 'cons)) 1)) + (assert-type-error (coerce #() 'nil)) + ;; MERGE + (assert-type-error (merge 'null '(1 3) '(2 4) '<)) + (assert-type-error (merge 'cons () () '<)) + (assert (null (merge 'null () () '<))) + (assert (= (length (merge 'cons '(1 3) '(2 4) '<)) 4)) + (assert-type-error (merge 'nil () () '<)) + ;; CONCATENATE + (assert-type-error (concatenate 'null '(1) "2")) + (assert-type-error (concatenate 'cons #() ())) + (assert (null (concatenate 'null () #()))) + (assert (= (length (concatenate 'cons #() '(1) "2 3")) 4)) + (assert-type-error (concatenate 'nil '(3))) + ;; FIXME: tests for MAP to come when some brave soul implements + ;; the analogous type checking for MAP/%MAP. )) - - ;;; success (quit :unix-status 104)