X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fprint.impure.lisp;h=bbaf4cb7c10ea350f77911fdecd19477d5feb905;hb=c8cc0137e55e6179f6af344f42e54f514660f68b;hp=2ccd7ff64ef90c1d0f14b5d573f26e8d9c45e57e;hpb=c0ea1cc4a9f928184b7a7ee65c396b79f1b9ff45;p=sbcl.git diff --git a/tests/print.impure.lisp b/tests/print.impure.lisp index 2ccd7ff..bbaf4cb 100644 --- a/tests/print.impure.lisp +++ b/tests/print.impure.lisp @@ -220,5 +220,16 @@ (assert (and w-p f-p)) (assert (nth-value 1 (ignore-errors (funcall f))))) +;;; floating point print/read consistency +(let ((x (/ -9.349640046247849d-21 -9.381494249123696d-11))) + (let ((y (read-from-string (write-to-string x :readably t)))) + (assert (eql x y)))) + +(let ((x1 (float -5496527/100000000000000000)) + (x2 (float -54965272/1000000000000000000))) + (assert (or (equal (multiple-value-list (integer-decode-float x1)) + (multiple-value-list (integer-decode-float x2))) + (string/= (prin1-to-string x1) (prin1-to-string x2))))) + ;;; success (quit :unix-status 104)