diff options
author | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2016-03-15 11:58:47 +0000 |
---|---|---|
committer | vlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4> | 2016-03-15 11:58:47 +0000 |
commit | d3e871322094ef8d8596aebcc3f978c5498cca0f (patch) | |
tree | dede57ca5f0c35a5dcad9f41e5e70422f2a9bbf6 /tests/tsum.c | |
parent | e20b5c87d4f93e77880540c046043985deeabcb8 (diff) | |
download | mpfr-d3e871322094ef8d8596aebcc3f978c5498cca0f.tar.gz |
[tests/tsum.c] Added bug20160315 (this bug appears when porting sum.c
for MPFR 3.1.4 but does not appear in the trunk).
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@10233 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'tests/tsum.c')
-rw-r--r-- | tests/tsum.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/tsum.c b/tests/tsum.c index 3aacc7945..f41fc8cfe 100644 --- a/tests/tsum.c +++ b/tests/tsum.c @@ -1182,6 +1182,38 @@ check_random (int n, int k, mpfr_prec_t prec, mpfr_rnd_t rnd) gmp_randclear (state); } +/* This bug appears when porting sum.c for MPFR 3.1.4 (0.11E826 is returned), + but does not appear in the trunk. TODO: find why. */ +static void +bug20160315 (void) +{ + mpfr_t r, t[4]; + mpfr_ptr p[4]; + char *s[4] = { "0.10E20", "0", "0.11E382", "0.10E826" }; + int i; + + mpfr_init2 (r, 2); + for (i = 0; i < 4; i++) + { + mpfr_init2 (t[i], 2); + mpfr_set_str_binary (t[i], s[i]); + p[i] = t[i]; + } + mpfr_sum (r, p, 4, MPFR_RNDN); + if (! mpfr_equal_p (r, t[3])) + { + printf ("Error in bug20160315.\n"); + printf ("Expected "); + mpfr_dump (t[3]); + printf ("Got "); + mpfr_dump (r); + exit (1); + } + for (i = 0; i < 4; i++) + mpfr_clear (t[i]); + mpfr_clear (r); +} + int main (int argc, char *argv[]) { @@ -1212,6 +1244,7 @@ main (int argc, char *argv[]) check4 (); bug20131027 (); bug20150327 (); + bug20160315 (); generic_tests (); check_extreme (); cancel (); |