1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-02 21:10:27 +02:00

(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.
This commit is contained in:
Kevin Ryde 2006-12-01 20:03:12 +00:00
parent d3dd7c7670
commit fefc68eaba

View file

@ -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)))