X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=tests%2Fprint.impure.lisp;h=c6b23e9b91a3014353c5949bbf579176daeae4cb;hb=1dc0e8c8c1a9ead7154e9c433d63eea103673774;hp=a0f67bfd0c4ca97b7655ef3562a34e760d282415;hpb=4898ef32c639b1c7f4ee13a5ba566ce6debd03e6;p=sbcl.git diff --git a/tests/print.impure.lisp b/tests/print.impure.lisp index a0f67bf..c6b23e9 100644 --- a/tests/print.impure.lisp +++ b/tests/print.impure.lisp @@ -322,7 +322,7 @@ ;;; CSR inserted a bug into Burger & Dybvig's float printer. Caught ;;; by Raymond Toy -(assert (string= (format nil "~E" 1d23) "1.0d+23")) +(assert (string= (format nil "~E" 1d23) "1.d+23")) ;;; Fixed-format bugs from CLISP's test suite (reported by Bruno ;;; Haible, bug 317) @@ -337,5 +337,49 @@ ;;; Adam Warner's test case (assert (string= (format nil "~@F" 1.23) "+1.23")) + +;;; New (2005-11-08, also known as CSR House day) float format test +;;; cases. Simon Alexander, Raymond Toy, and others +(assert (string= (format nil "~9,4,,-7E" pi) ".00000003d+8")) +(assert (string= (format nil "~9,4,,-5E" pi) ".000003d+6")) +(assert (string= (format nil "~5,4,,7E" pi) "3141600.d-6")) +(assert (string= (format nil "~11,4,,3E" pi) " 314.16d-2")) +(assert (string= (format nil "~11,4,,5E" pi) " 31416.d-4")) +(assert (string= (format nil "~11,4,,0E" pi) " 0.3142d+1")) +(assert (string= (format nil "~9,,,-1E" pi) ".03142d+2")) +(assert (string= (format nil "~,,,-2E" pi) "0.003141592653589793d+3")) +(assert (string= (format nil "~,,,2E" pi) "31.41592653589793d-1")) +(assert (string= (format nil "~E" pi) "3.141592653589793d+0")) +(assert (string= (format nil "~9,5,,-1E" pi) ".03142d+2")) +(assert (string= (format nil "~11,5,,-1E" pi) " 0.03142d+2")) +(assert (string= (format nil "~G" pi) "3.141592653589793 ")) +(assert (string= (format nil "~9,5G" pi) "3.1416 ")) +(assert (string= (format nil "|~13,6,2,7E|" pi) "| 3141593.d-06|")) +(assert (string= (format nil "~9,3,2,0,'%E" pi) "0.314d+01")) +(assert (string= (format nil "~9,0,6f" pi) " 3141593.")) +(assert (string= (format nil "~6,2,1,'*F" pi) " 31.42")) +(assert (string= (format nil "~6,2,1,'*F" (* 100 pi)) "******")) +(assert (string= (format nil "~9,3,2,-2,'%@E" pi) "+.003d+03")) +(assert (string= (format nil "~10,3,2,-2,'%@E" pi) "+0.003d+03")) +(assert (string= (format nil "~15,3,2,-2,'%,'=@E" pi) "=====+0.003d+03")) +(assert (string= (format nil "~9,3,2,-2,'%E" pi) "0.003d+03")) +(assert (string= (format nil "~8,3,2,-2,'%@E" pi) "%%%%%%%%")) + +(assert (string= (format nil "~g" 1e0) "1. ")) +(assert (string= (format nil "~g" 1.2d40) "12000000000000000000000000000000000000000. ")) + +(assert (string= (format nil "~e" 0) "0.0e+0")) +(assert (string= (format nil "~e" 0d0) "0.0d+0")) +(assert (string= (format nil "~9,,4e" 0d0) "0.0d+0000")) + +(let ((table (make-hash-table))) + (setf (gethash 1 table) t) + (assert + (raises-error? (with-standard-io-syntax + (let ((*read-eval* nil) + (*print-readably* t)) + (with-output-to-string (*standard-output*) + (prin1 table)))) + print-not-readable))) + ;;; success -(quit :unix-status 104)