summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Bodrato <bodrato@mail.dm.unipi.it>2013-01-16 17:44:04 +0100
committerMarco Bodrato <bodrato@mail.dm.unipi.it>2013-01-16 17:44:04 +0100
commitf543fa4a40797dc36d1b515c50722234a51ffcfe (patch)
tree3cacbbe772c49d32c27b4f31029c8b62b2d5effe
parent2fca2e63abd56db3b88e43c4acfbeaae74b3a0d0 (diff)
downloadgmp-f543fa4a40797dc36d1b515c50722234a51ffcfe.tar.gz
mini-gmp/tests/t-str.c: Test base <= 0.
-rw-r--r--ChangeLog1
-rw-r--r--mini-gmp/tests/t-str.c10
2 files changed, 6 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index b483e39fa..93dc9adae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;