summaryrefslogtreecommitdiff
path: root/tests/tlngamma.c
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2017-12-20 10:40:34 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2017-12-20 10:40:34 +0000
commit5a7af2e061628fdcaa1adc0a499ef954bf3f90f6 (patch)
tree8199773c485a2ef6fd6e33f0fef44f1d703fc9fc /tests/tlngamma.c
parenta97ad7d25cbae54277e7ce687957f44d08c186d1 (diff)
downloadmpfr-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.c34
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);