diff options
author | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2013-01-16 17:44:04 +0100 |
---|---|---|
committer | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2013-01-16 17:44:04 +0100 |
commit | f543fa4a40797dc36d1b515c50722234a51ffcfe (patch) | |
tree | 3cacbbe772c49d32c27b4f31029c8b62b2d5effe | |
parent | 2fca2e63abd56db3b88e43c4acfbeaae74b3a0d0 (diff) | |
download | gmp-f543fa4a40797dc36d1b515c50722234a51ffcfe.tar.gz |
mini-gmp/tests/t-str.c: Test base <= 0.
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | mini-gmp/tests/t-str.c | 10 |
2 files changed, 6 insertions, 5 deletions
@@ -4,6 +4,7 @@ * mini-gmp/mini-gmp.c (mpz_cmp_d): Correct multiword comparison. * mini-gmp/mini-gmp.c (mpz_set_str): Handle the empty string. + * mini-gmp/tests/t-str.c: Test base <= 0. 2013-01-15 Niels Möller <nisse@lysator.liu.se> diff --git a/mini-gmp/tests/t-str.c b/mini-gmp/tests/t-str.c index d7f5ebca4..c92a62c26 100644 --- a/mini-gmp/tests/t-str.c +++ b/mini-gmp/tests/t-str.c @@ -58,9 +58,9 @@ main (int argc, char **argv) for (i = 0; i < COUNT; i++) { int base; - for (base = 2; base <= 36; base++) + for (base = 0; base <= 36; base += 1 + (base == 0)) { - hex_random_str_op (MAXBITS, base, &ap, &rp); + hex_random_str_op (MAXBITS, i&1 ? base: -base, &ap, &rp); if (mpz_set_str (a, ap, 16) != 0) { fprintf (stderr, "mpz_set_str failed on input %s\n", ap); @@ -70,7 +70,7 @@ main (int argc, char **argv) rn = strlen (rp); arn = rn - (rp[0] == '-'); - bn = mpz_sizeinbase (a, base); + bn = mpz_sizeinbase (a, base ? base : 10); if (bn < arn || bn > (arn + 1)) { fprintf (stderr, "mpz_sizeinbase failed:\n"); @@ -80,7 +80,7 @@ main (int argc, char **argv) base, (unsigned) arn, (unsigned)bn); abort (); } - bp = mpz_get_str (NULL, base, a); + bp = mpz_get_str (NULL, i&1 ? base: -base, a); if (strcmp (bp, rp)) { fprintf (stderr, "mpz_get_str failed:\n"); @@ -106,7 +106,7 @@ main (int argc, char **argv) } /* Test mpn interface */ - if (mpz_sgn (a)) + if (base && mpz_sgn (a)) { size_t i; const char *absr; |