diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2017-12-20 10:40:34 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2017-12-20 10:40:34 +0000 |
commit | 5a7af2e061628fdcaa1adc0a499ef954bf3f90f6 (patch) | |
tree | 8199773c485a2ef6fd6e33f0fef44f1d703fc9fc /tests/tlngamma.c | |
parent | a97ad7d25cbae54277e7ce687957f44d08c186d1 (diff) | |
download | mpfr-5a7af2e061628fdcaa1adc0a499ef954bf3f90f6.tar.gz |
[tests/tlngamma.c] added failing test with mpfr-4.0.0-rc2
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@12028 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'tests/tlngamma.c')
-rw-r--r-- | tests/tlngamma.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/tlngamma.c b/tests/tlngamma.c index 377097807..88fd8b358 100644 --- a/tests/tlngamma.c +++ b/tests/tlngamma.c @@ -252,11 +252,45 @@ special (void) mpfr_clear (y); } +/* test failing with GMP_CHECK_RANDOMIZE=1513869588 */ +static void +bug20171220 (void) +{ + mpfr_t x, y, z; + int inex; + + mpfr_init2 (x, 15); + mpfr_init2 (y, 15); + mpfr_init2 (z, 15); + + mpfr_set_str (x, "1.01111e+00", 10, MPFR_RNDN); /* x = 8283/8192 */ + inex = mpfr_lngamma (y, x, MPFR_RNDN); + mpfr_set_str (z, "-0.0063109971733698154140545190234", 10, MPFR_RNDN); + MPFR_ASSERTN(mpfr_equal_p (y, z)); + MPFR_ASSERTN(inex > 0); + + mpfr_set_prec (x, 43); + mpfr_set_prec (y, 1); + mpfr_set_prec (z, 1); + mpfr_set_str (x, "9.8888652212918e-01", 10, MPFR_RNDN); + /* lngamma(x) = 0.00651701007222520, should be rounded up to 0.0078125 */ + inex = mpfr_lngamma (y, x, MPFR_RNDU); + mpfr_set_ui_2exp (z, 1, -7, MPFR_RNDN); + MPFR_ASSERTN(mpfr_equal_p (y, z)); + MPFR_ASSERTN(inex > 0); + + mpfr_clear (x); + mpfr_clear (y); + mpfr_clear (z); +} + int main (void) { tests_start_mpfr (); + bug20171220 (); + special (); test_generic (MPFR_PREC_MIN, 100, 2); |