X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=tests%2Freader.pure.lisp;h=33af266560df0ef9931fcdbd643768576fb69259;hb=4ed3f0d08c3a57a6762018d9622f253ab9d0f2b6;hp=77ba4981a4e2efa1c8571ae7adca2e7e6369298f;hpb=bff8455d98c50672cdc29abcf1809b8823f5f117;p=sbcl.git diff --git a/tests/reader.pure.lisp b/tests/reader.pure.lisp index 77ba498..33af266 100644 --- a/tests/reader.pure.lisp +++ b/tests/reader.pure.lisp @@ -74,3 +74,36 @@ (assert (= (parse-integer "12") 12)) (assert (= (parse-integer " 12 ") 12)) (assert (= (parse-integer " 12asdb" :junk-allowed t) 12))) + +;;; #A notation enforces that once one 0 dimension has been found, all +;;; subsequent ones are also 0. +(assert (equal (array-dimensions (read-from-string "#3A()")) + '(0 0 0))) +(assert (equal (array-dimensions (read-from-string "#3A(())")) + '(1 0 0))) +(assert (equal (array-dimensions (read-from-string "#3A((() ()))")) + '(1 2 0))) + +;;; Bug reported by Nikodemus Siivola on sbcl-devel 2003-07-21: +;;; package misconfiguration +(assert (eq + (handler-case (with-input-from-string (s "cl:") (read s)) + (end-of-file (c) + 'good)) + 'good)) + +;;; Bugs found by Paul Dietz +(assert (equal (multiple-value-list + (parse-integer " 123 ")) + '(123 12))) + +(let* ((base "xxx 123 yyy") + (intermediate (make-array 8 :element-type (array-element-type base) + :displaced-to base + :displaced-index-offset 2)) + (string (make-array 6 :element-type (array-element-type base) + :displaced-to intermediate + :displaced-index-offset 1))) + (assert (equal (multiple-value-list + (parse-integer string)) + '(123 6))))