summaryrefslogtreecommitdiff
path: root/tests/tsum.c
diff options
context:
space:
mode:
authorvlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2016-03-15 11:58:47 +0000
committervlefevre <vlefevre@280ebfd0-de03-0410-8827-d642c229c3f4>2016-03-15 11:58:47 +0000
commitd3e871322094ef8d8596aebcc3f978c5498cca0f (patch)
treedede57ca5f0c35a5dcad9f41e5e70422f2a9bbf6 /tests/tsum.c
parente20b5c87d4f93e77880540c046043985deeabcb8 (diff)
downloadmpfr-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.c33
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 ();