diff options
author | Torbjorn Granlund <tg@gmplib.org> | 2019-08-01 15:21:12 +0200 |
---|---|---|
committer | Torbjorn Granlund <tg@gmplib.org> | 2019-08-01 15:21:12 +0200 |
commit | 1998ac339998cb42780c71acde4c106e6a4a3afb (patch) | |
tree | 12872138658e6f092d6766b0b704559e018b3db8 /tests | |
parent | 869f0b8cc1183dbc9dd43f211b8ec6da8c3a0d38 (diff) | |
download | gmp-1998ac339998cb42780c71acde4c106e6a4a3afb.tar.gz |
Add several more fixed test cases.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/mpf/t-conv.c | 103 |
1 files changed, 101 insertions, 2 deletions
diff --git a/tests/mpf/t-conv.c b/tests/mpf/t-conv.c index a3eb9624f..c86bbccb1 100644 --- a/tests/mpf/t-conv.c +++ b/tests/mpf/t-conv.c @@ -1,6 +1,6 @@ /* Test mpf_get_str and mpf_set_str. -Copyright 1996, 2000, 2001, 2008 Free Software Foundation, Inc. +Copyright 1996, 2000, 2001, 2008, 2019 Free Software Foundation, Inc. This file is part of the GNU MP Library test suite. @@ -71,8 +71,29 @@ main (int argc, char **argv) /* First test some specific values. */ - mpf_set_str (y, "1.23456e1000", 0); + mpf_set_str (y, "1.23456", 0); + mpf_set_str (x, "1.23456", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, "00000000000000000000000000000000000000001.23456", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, "0.000000000000000000000000000000000000000123456e40", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, ".000000000000000000000000000000000000000123456e40", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, "00000000000000000000.00000000000000000000123456e21", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (y, "1.23456e1000", 0); mpf_set_str (x, "1.23456e1000", 10); if (mpf_cmp (x, y) != 0) abort (); @@ -82,6 +103,84 @@ main (int argc, char **argv) mpf_set_str (x, "1.23456e+1000", 10); if (mpf_cmp (x, y) != 0) abort (); + mpf_set_str (x, "00000000000000000000000000000000000000001.23456e+1000", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, "0.000000000000000000000000000000000000000123456e+1040", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, ".000000000000000000000000000000000000000123456e+1040", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, "00000000000000000000.00000000000000000000123456e+1021", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + + mpf_set_str (y, "1.23456", 16); + mpf_set_str (x, "00000000000000000000000000000000000000001.23456", 16); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, "0.000000000000000000000000000000000000000123456@28", 16); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, ".000000000000000000000000000000000000000123456@28", 16); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, "00000000000000000000.00000000000000000000123456@15", 16); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + + mpf_set_str (y, "0", 10); + mpf_set_str (x, "00000000000000000000000000000000000000000000000000000", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, "0000000000000000000000000000000000000000000000000000.", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, "000000000000000000000000000000000000000000000000000.0", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, ".0000000000000000000000000000000000000000000000000000", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, "0.000000000000000000000000000000000000000000000000000", 10); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + + mpf_set_str (y, "0", 16); + mpf_set_str (x, "00000000000000000000000000000000000000000000000000000", 16); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, "0000000000000000000000000000000000000000000000000000.", 16); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, "000000000000000000000000000000000000000000000000000.0", 16); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, ".0000000000000000000000000000000000000000000000000000", 16); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); + mpf_set_str (x, "0.000000000000000000000000000000000000000000000000000", 16); + MPF_CHECK_FORMAT (x); + if (mpf_cmp (x, y) != 0) + abort (); /* Now test random values. */ |