From d31dcf6717d8e24ee96c99e95b85c1d7311d8c70 Mon Sep 17 00:00:00 2001 From: zimmerma Date: Tue, 29 Aug 2017 12:52:50 +0000 Subject: added test_underflow() git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/branches/3.1@11691 280ebfd0-de03-0410-8827-d642c229c3f4 --- tests/turandom.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/turandom.c b/tests/turandom.c index 0c0129dfa..03f7f62a8 100644 --- a/tests/turandom.c +++ b/tests/turandom.c @@ -308,6 +308,30 @@ underflow_tests (void) mpfr_set_emin (emin); } +static void +test_underflow (int verbose) +{ + mpfr_t x; + mpfr_exp_t emin = mpfr_get_emin (); + int i, exp[5] = {0, 0, 0, 0, 0}; + + mpfr_init2 (x, 2); + mpfr_set_emin (-3); + for (i = 0; i < 1000000; i++) + { + mpfr_urandom (x, RANDS, MPFR_RNDN); + if (mpfr_zero_p (x)) + exp[4] ++; + else + exp[-mpfr_get_exp(x)] ++; + } + if (verbose) + printf ("exp=0:%d -1:%d -2:%d -3:%d x=0:%d\n", + exp[0], exp[1], exp[2], exp[3], exp[4]); + mpfr_clear (x); + mpfr_set_emin (emin); +} + static void overflow_tests (void) { @@ -517,6 +541,7 @@ main (int argc, char *argv[]) bug20100914 (); bug20170123 (); reprod_abi (); + test_underflow (verbose); tests_end_mpfr (); return 0; -- cgit v1.2.1