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:
parent
d3dd7c7670
commit
fefc68eaba
1 changed files with 16 additions and 20 deletions
|
@ -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)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue