From fefc68eabaaa90826a89aead6184a9aa102e97df Mon Sep 17 00:00:00 2001 From: Kevin Ryde Date: Fri, 1 Dec 2006 20:03:12 +0000 Subject: [PATCH] (min, max): Correction to big/real and real/big tests, `big*5' will round on a 64-bit system. And use `eqv?' to ensure intended exact vs inexact is checked. Reported by Aaron M. Ucko, Debian bug 396119. --- test-suite/tests/numbers.test | 36 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/test-suite/tests/numbers.test b/test-suite/tests/numbers.test index 78d130a2b..40ca48ebc 100644 --- a/test-suite/tests/numbers.test +++ b/test-suite/tests/numbers.test @@ -2243,19 +2243,17 @@ (with-test-prefix "big / real" (pass-if (nan? (max big*5 +nan.0))) - (pass-if (= big*5 (max big*5 -inf.0))) - (pass-if (= +inf.0 (max big*5 +inf.0))) - (pass-if (= 1.0 (max (- big*5) 1.0))) - (pass-if (inexact? (max big*5 1.0))) - (pass-if (= (exact->inexact big*5) (max big*5 1.0)))) + (pass-if (eqv? (exact->inexact big*5) (max big*5 -inf.0))) + (pass-if (eqv? (exact->inexact big*5) (max big*5 1.0))) + (pass-if (eqv? +inf.0 (max big*5 +inf.0))) + (pass-if (eqv? 1.0 (max (- big*5) 1.0)))) (with-test-prefix "real / big" (pass-if (nan? (max +nan.0 big*5))) - (pass-if (= +inf.0 (max +inf.0 big*5))) - (pass-if (= big*5 (max -inf.0 big*5))) - (pass-if (= 1.0 (max 1.0 (- big*5)))) - (pass-if (inexact? (max 1.0 big*5))) - (pass-if (= (exact->inexact big*5) (max 1.0 big*5)))) + (pass-if (eqv? (exact->inexact big*5) (max -inf.0 big*5))) + (pass-if (eqv? (exact->inexact big*5) (max 1.0 big*5))) + (pass-if (eqv? +inf.0 (max +inf.0 big*5))) + (pass-if (eqv? 1.0 (max 1.0 (- big*5))))) (with-test-prefix "frac / frac" (pass-if (= 2/3 (max 1/2 2/3))) @@ -2370,19 +2368,17 @@ (with-test-prefix "big / real" (pass-if (nan? (min big*5 +nan.0))) - (pass-if (= big*5 (min big*5 +inf.0))) - (pass-if (= -inf.0 (min big*5 -inf.0))) - (pass-if (= 1.0 (min big*5 1.0))) - (pass-if (inexact? (min (- big*5) 1.0))) - (pass-if (= (exact->inexact (- big*5)) (min (- big*5) 1.0)))) + (pass-if (eqv? (exact->inexact big*5) (min big*5 +inf.0))) + (pass-if (eqv? -inf.0 (min big*5 -inf.0))) + (pass-if (eqv? 1.0 (min big*5 1.0))) + (pass-if (eqv? (exact->inexact (- big*5)) (min (- big*5) 1.0)))) (with-test-prefix "real / big" (pass-if (nan? (min +nan.0 big*5))) - (pass-if (= big*5 (min +inf.0 big*5))) - (pass-if (= -inf.0 (min -inf.0 big*5))) - (pass-if (= 1.0 (min 1.0 big*5))) - (pass-if (inexact? (min 1.0 (- big*5)))) - (pass-if (= (exact->inexact (- big*5)) (min 1.0 (- big*5))))) + (pass-if (eqv? (exact->inexact big*5) (min +inf.0 big*5))) + (pass-if (eqv? -inf.0 (min -inf.0 big*5))) + (pass-if (eqv? 1.0 (min 1.0 big*5))) + (pass-if (eqv? (exact->inexact (- big*5)) (min 1.0 (- big*5))))) (with-test-prefix "frac / frac" (pass-if (= 1/2 (min 1/2 2/3)))