summaryrefslogtreecommitdiff
path: root/tests/tsub.c
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2002-09-26 08:00:09 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2002-09-26 08:00:09 +0000
commit6bbaa4c44d3b4f6b07b5b0101ee823e81acfb72e (patch)
tree2e5f7668e220da0cfbb5542c3fecc686d0e2f324 /tests/tsub.c
parent17c9f76217930489414763cbff3a1ffbc2ba7287 (diff)
downloadmpfr-6bbaa4c44d3b4f6b07b5b0101ee823e81acfb72e.tar.gz
added test for inexact flag (bug found by Andreas Enge)
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@2031 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'tests/tsub.c')
-rw-r--r--tests/tsub.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/tsub.c b/tests/tsub.c
index 10124f55d..5a7123ed7 100644
--- a/tests/tsub.c
+++ b/tests/tsub.c
@@ -348,6 +348,19 @@ check_inexact (void)
mpfr_init (z);
mpfr_init (u);
+ mpfr_set_prec (x, 2);
+ mpfr_set_ui (x, 6, GMP_RNDN);
+ mpfr_div_2exp (x, x, 4, GMP_RNDN); /* x = 6/16 */
+ mpfr_set_prec (y, 2);
+ mpfr_set_si (y, -1, GMP_RNDN);
+ mpfr_div_2exp (y, y, 4, GMP_RNDN); /* y = -1/16 */
+ inexact = mpfr_sub (y, y, x, GMP_RNDN); /* y = round(-7/16) = -1/2 */
+ if (inexact >= 0)
+ {
+ fprintf (stderr, "Error: wrong inexact flag for -1/16 - (6/16)\n");
+ exit (1);
+ }
+
for (px=2; px<MAX_PREC; px++)
{
mpfr_set_prec (x, px);