From 2cfcaed5259a65a8345db2de4f2c89d57225c6ac Mon Sep 17 00:00:00 2001 From: Kevin Ryde Date: Sat, 10 May 2003 00:07:34 +0000 Subject: [PATCH] (=, <): Add tests involving NaNs. --- test-suite/tests/numbers.test | 54 +++++++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/test-suite/tests/numbers.test b/test-suite/tests/numbers.test index 3dfa51eee..09c607b92 100644 --- a/test-suite/tests/numbers.test +++ b/test-suite/tests/numbers.test @@ -1157,7 +1157,30 @@ (expect-fail (= (+ 1 fixnum-max) fixnum-max)) (expect-fail (= fixnum-min (- fixnum-min 1))) (expect-fail (= (- fixnum-min 1) fixnum-min)) - (expect-fail (= (+ fixnum-max 1) (- fixnum-min 1)))) + (expect-fail (= (+ fixnum-max 1) (- fixnum-min 1))) + + (pass-if (not (= +nan.0 +nan.0))) + (pass-if (not (= 0 +nan.0))) + (pass-if (not (= +nan.0 0))) + (pass-if (not (= 1 +nan.0))) + (pass-if (not (= +nan.0 1))) + (pass-if (not (= -1 +nan.0))) + (pass-if (not (= +nan.0 -1))) + + (pass-if (not (= (ash 1 256) +nan.0))) + (pass-if (not (= +nan.0 (ash 1 256)))) + (pass-if (not (= (- (ash 1 256)) +nan.0))) + (pass-if (not (= +nan.0 (- (ash 1 256))))) + + (pass-if (not (= (ash 1 8192) +nan.0))) + (pass-if (not (= +nan.0 (ash 1 8192)))) + (pass-if (not (= (- (ash 1 8192)) +nan.0))) + (pass-if (not (= +nan.0 (- (ash 1 8192))))) + + ;; in gmp prior to 4.2, mpz_cmp_d ended up treating NaN as 3*2^1023, make + ;; sure we've avoided that + (pass-if (not (= (ash 3 1023) +nan.0))) + (pass-if (not (= +nan.0 (ash 3 1023))))) ;;; ;;; < @@ -1486,7 +1509,34 @@ (< (- fixnum-min 1) fixnum-min)) (pass-if "n = fixnum-min - 1" - (not (< (- fixnum-min 1) (- fixnum-min 1)))))) + (not (< (- fixnum-min 1) (- fixnum-min 1))))) + + (pass-if (not (< +nan.0 +nan.0))) + (pass-if (not (< 0 +nan.0))) + (pass-if (not (< +nan.0 0))) + (pass-if (not (< 1 +nan.0))) + (pass-if (not (< +nan.0 1))) + (pass-if (not (< -1 +nan.0))) + (pass-if (not (< +nan.0 -1))) + + (pass-if (not (< (ash 1 256) +nan.0))) + (pass-if (not (< +nan.0 (ash 1 256)))) + (pass-if (not (< (- (ash 1 256)) +nan.0))) + (pass-if (not (< +nan.0 (- (ash 1 256))))) + + (pass-if (not (< (ash 1 8192) +nan.0))) + (pass-if (not (< +nan.0 (ash 1 8192)))) + (pass-if (not (< (- (ash 1 8192)) +nan.0))) + (pass-if (not (< +nan.0 (- (ash 1 8192))))) + + ;; in gmp prior to 4.2, mpz_cmp_d ended up treating NaN as 3*2^1023, make + ;; sure we've avoided that + (pass-if (not (< (ash 3 1023) +nan.0))) + (pass-if (not (< (1+ (ash 3 1023)) +nan.0))) + (pass-if (not (< (1- (ash 3 1023)) +nan.0))) + (pass-if (not (< +nan.0 (ash 3 1023)))) + (pass-if (not (< +nan.0 (1+ (ash 3 1023))))) + (pass-if (not (< +nan.0 (1- (ash 3 1023)))))) ;;; ;;; >