diff options
author | Kevin Ryde <user42@zip.com.au> | 2004-04-05 23:05:37 +0000 |
---|---|---|
committer | Kevin Ryde <user42@zip.com.au> | 2004-04-05 23:05:37 +0000 |
commit | ad22fe7cf87998a79234f9ca96f8c871333ef98e (patch) | |
tree | 890c374116d1f2470941bda63c18a26ed2048e1a | |
parent | c3110a30453d0f3103174737f915aa017a6a7153 (diff) | |
download | guile-ad22fe7cf87998a79234f9ca96f8c871333ef98e.tar.gz |
(quotient, remainder): Exercise inum/big at and
near special case inum == fixnum-min, big == -fixnum-min.
-rw-r--r-- | test-suite/tests/numbers.test | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/test-suite/tests/numbers.test b/test-suite/tests/numbers.test index ab70a590a..72776631c 100644 --- a/test-suite/tests/numbers.test +++ b/test-suite/tests/numbers.test @@ -324,7 +324,17 @@ (eqv? 1 (quotient fixnum-min fixnum-min))) (pass-if "n = fixnum-min - 1" - (eqv? 0 (quotient fixnum-min (- fixnum-min 1))))) + (eqv? 0 (quotient fixnum-min (- fixnum-min 1)))) + + (pass-if "n = - fixnum-min - 1" + (eqv? -1 (quotient fixnum-min (1- (- fixnum-min))))) + + ;; special case, normally inum/big is zero + (pass-if "n = - fixnum-min" + (eqv? -1 (quotient fixnum-min (- fixnum-min)))) + + (pass-if "n = - fixnum-min + 1" + (eqv? 0 (quotient fixnum-min (1+ (- fixnum-min)))))) (with-test-prefix "(fixnum-min - 1) / n" @@ -512,7 +522,17 @@ (eqv? 0 (remainder fixnum-min fixnum-min))) (pass-if "n = fixnum-min - 1" - (eqv? fixnum-min (remainder fixnum-min (- fixnum-min 1))))) + (eqv? fixnum-min (remainder fixnum-min (- fixnum-min 1)))) + + (pass-if "n = - fixnum-min - 1" + (eqv? -1 (remainder fixnum-min (1- (- fixnum-min))))) + + ;; special case, normally inum%big is the inum + (pass-if "n = - fixnum-min" + (eqv? 0 (remainder fixnum-min (- fixnum-min)))) + + (pass-if "n = - fixnum-min + 1" + (eqv? fixnum-min (remainder fixnum-min (1+ (- fixnum-min)))))) (with-test-prefix "(fixnum-min - 1) / n" |