summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/mpfr-test.h2
-rw-r--r--tests/tasin.c1
-rw-r--r--tests/tatanh.c1
-rw-r--r--tests/tcosh.c2
-rw-r--r--tests/tcsch.c1
-rw-r--r--tests/tdim.c3
-rw-r--r--tests/teint.c2
-rw-r--r--tests/terf.c2
-rw-r--r--tests/tests.c5
-rw-r--r--tests/texp.c2
-rw-r--r--tests/texp10.c2
-rw-r--r--tests/texp2.c2
-rw-r--r--tests/texpm1.c2
-rw-r--r--tests/tgeneric.c16
-rw-r--r--tests/tlog1p.c1
-rw-r--r--tests/tpow.c1
-rw-r--r--tests/tsech.c2
-rw-r--r--tests/tsinh.c2
-rw-r--r--tests/ttanh.c2
-rw-r--r--tests/tzeta.c4
20 files changed, 49 insertions, 6 deletions
diff --git a/tests/mpfr-test.h b/tests/mpfr-test.h
index 5203ce911..3c97147af 100644
--- a/tests/mpfr-test.h
+++ b/tests/mpfr-test.h
@@ -78,7 +78,7 @@ void ld_trace _MPFR_PROTO ((const char *, long double));
FILE *src_fopen _MPFR_PROTO ((const char *, const char *));
void set_emin _MPFR_PROTO ((mp_exp_t));
void set_emax _MPFR_PROTO ((mp_exp_t));
-void tests_default_random _MPFR_PROTO ((mpfr_ptr, int));
+void tests_default_random _MPFR_PROTO ((mpfr_ptr, int, mp_exp_t, mp_exp_t));
void data_check _MPFR_PROTO ((char *, int (*) (), char *));
int mpfr_cmp_str _MPFR_PROTO ((mpfr_srcptr x, const char *, int, mp_rnd_t));
diff --git a/tests/tasin.c b/tests/tasin.c
index 3dd56c7e9..1524b8134 100644
--- a/tests/tasin.c
+++ b/tests/tasin.c
@@ -26,6 +26,7 @@ MA 02110-1301, USA. */
#include "mpfr-test.h"
#define TEST_FUNCTION mpfr_asin
+#define TEST_RANDOM_EMAX 7
#include "tgeneric.c"
static void
diff --git a/tests/tatanh.c b/tests/tatanh.c
index efd098c31..9e6727039 100644
--- a/tests/tatanh.c
+++ b/tests/tatanh.c
@@ -26,6 +26,7 @@ MA 02110-1301, USA. */
#include "mpfr-test.h"
#define TEST_FUNCTION mpfr_atanh
+#define TEST_RANDOM_EMAX 7
#include "tgeneric.c"
static void
diff --git a/tests/tcosh.c b/tests/tcosh.c
index 5e797f8fb..b07507d2c 100644
--- a/tests/tcosh.c
+++ b/tests/tcosh.c
@@ -26,6 +26,8 @@ MA 02110-1301, USA. */
#include "mpfr-test.h"
#define TEST_FUNCTION mpfr_cosh
+#define TEST_RANDOM_EMIN -36
+#define TEST_RANDOM_EMAX 36
#include "tgeneric.c"
static void
diff --git a/tests/tcsch.c b/tests/tcsch.c
index 116ff7cd0..0dbd5a540 100644
--- a/tests/tcsch.c
+++ b/tests/tcsch.c
@@ -26,6 +26,7 @@ MA 02110-1301, USA. */
#include "mpfr-test.h"
#define TEST_FUNCTION mpfr_csch
+#define TEST_RANDOM_EMAX 63
#include "tgeneric.c"
static void
diff --git a/tests/tdim.c b/tests/tdim.c
index d04184af3..7960d12b0 100644
--- a/tests/tdim.c
+++ b/tests/tdim.c
@@ -27,6 +27,9 @@ MA 02110-1301, USA. */
#define TEST_FUNCTION mpfr_dim
#define TWO_ARGS
+#define TEST_RANDOM_EMIN -20
+#define TEST_RANDOM_EMAX 20
+#define TGENERIC_NOWARNING 1
#include "tgeneric.c"
int
diff --git a/tests/teint.c b/tests/teint.c
index 0e9836517..7254fb73c 100644
--- a/tests/teint.c
+++ b/tests/teint.c
@@ -26,6 +26,8 @@ MA 02110-1301, USA. */
#include "mpfr-test.h"
#define TEST_FUNCTION mpfr_eint
+#define TEST_RANDOM_POS 8
+#define TEST_RANDOM_EMAX 40
#include "tgeneric.c"
static void
diff --git a/tests/terf.c b/tests/terf.c
index 90f1be319..f50d9fe9f 100644
--- a/tests/terf.c
+++ b/tests/terf.c
@@ -31,6 +31,8 @@ MA 02110-1301, USA. */
#include "tgeneric.c"
#define TEST_FUNCTION mpfr_erfc
+#undef TEST_RANDOM_EMAX
+#define TEST_RANDOM_EMAX 63
#define test_generic test_generic_erfc
#include "tgeneric.c"
diff --git a/tests/tests.c b/tests/tests.c
index bc4ca1d79..c1228f7ea 100644
--- a/tests/tests.c
+++ b/tests/tests.c
@@ -408,11 +408,12 @@ set_emax (mp_exp_t exponent)
/* pos is 512 times the proportion of negative numbers */
void
-tests_default_random (mpfr_ptr x, int pos)
+tests_default_random (mpfr_ptr x, int pos, mp_exp_t emin, mp_exp_t emax)
{
mpfr_random (x);
if (randlimb () & 1)
- mpfr_mul_2si (x, x, (int) (randlimb () % 512) - 256, GMP_RNDN);
+ mpfr_mul_2si (x, x, emin + (long) (randlimb () % (emax - emin + 1)),
+ GMP_RNDN);
if (randlimb () % 512 < pos)
mpfr_neg (x, x, GMP_RNDN);
}
diff --git a/tests/texp.c b/tests/texp.c
index 6a14cf743..964a1fe07 100644
--- a/tests/texp.c
+++ b/tests/texp.c
@@ -213,6 +213,8 @@ check_large (void)
}
#define TEST_FUNCTION test_exp
+#define TEST_RANDOM_EMIN -36
+#define TEST_RANDOM_EMAX 36
#include "tgeneric.c"
static void
diff --git a/tests/texp10.c b/tests/texp10.c
index 5b1e70283..b9abfbc5b 100644
--- a/tests/texp10.c
+++ b/tests/texp10.c
@@ -27,6 +27,8 @@ MA 02110-1301, USA. */
#include "mpfr-test.h"
#define TEST_FUNCTION mpfr_exp10
+#define TEST_RANDOM_EMIN -36
+#define TEST_RANDOM_EMAX 36
#include "tgeneric.c"
static void
diff --git a/tests/texp2.c b/tests/texp2.c
index 1a7dc71ce..1d4ade513 100644
--- a/tests/texp2.c
+++ b/tests/texp2.c
@@ -27,6 +27,8 @@ MA 02110-1301, USA. */
#include "mpfr-test.h"
#define TEST_FUNCTION mpfr_exp2
+#define TEST_RANDOM_EMIN -36
+#define TEST_RANDOM_EMAX 36
#include "tgeneric.c"
static void
diff --git a/tests/texpm1.c b/tests/texpm1.c
index e1274a35a..d35138bdf 100644
--- a/tests/texpm1.c
+++ b/tests/texpm1.c
@@ -49,6 +49,8 @@ test_expm1 (mpfr_ptr a, mpfr_srcptr b, mp_rnd_t rnd_mode)
#endif
#define TEST_FUNCTION test_expm1
+#define TEST_RANDOM_EMIN -36
+#define TEST_RANDOM_EMAX 36
#include "tgeneric.c"
static void
diff --git a/tests/tgeneric.c b/tests/tgeneric.c
index 1e4506dac..c4b907651 100644
--- a/tests/tgeneric.c
+++ b/tests/tgeneric.c
@@ -32,6 +32,14 @@ MA 02110-1301, USA. */
#define TEST_RANDOM_POS2 256
#endif
+#ifndef TEST_RANDOM_EMIN
+#define TEST_RANDOM_EMIN -256
+#endif
+
+#ifndef TEST_RANDOM_EMAX
+#define TEST_RANDOM_EMAX 255
+#endif
+
#define TGENERIC_FAIL(S, X, U) \
do \
{ \
@@ -145,9 +153,11 @@ test_generic (mp_prec_t p0, mp_prec_t p1, unsigned int N)
RAND_FUNCTION (u);
#endif
#else
- tests_default_random (x, TEST_RANDOM_POS);
+ tests_default_random (x, TEST_RANDOM_POS,
+ TEST_RANDOM_EMIN, TEST_RANDOM_EMAX);
#ifdef TWO_ARGS
- tests_default_random (u, TEST_RANDOM_POS2);
+ tests_default_random (u, TEST_RANDOM_POS2,
+ TEST_RANDOM_EMIN, TEST_RANDOM_EMAX);
#endif
#endif
}
@@ -273,9 +283,11 @@ test_generic (mp_prec_t p0, mp_prec_t p1, unsigned int N)
}
}
+#ifndef TGENERIC_NOWARNING
if (3 * ctrn < 2 * ctrt)
printf ("Warning! Too few normal cases in generic tests (%lu / %lu)\n",
ctrn, ctrt);
+#endif
mpfr_clear (x);
mpfr_clear (y);
diff --git a/tests/tlog1p.c b/tests/tlog1p.c
index b6d0b6252..3db979844 100644
--- a/tests/tlog1p.c
+++ b/tests/tlog1p.c
@@ -49,6 +49,7 @@ test_log1p (mpfr_ptr a, mpfr_srcptr b, mp_rnd_t rnd_mode)
#endif
#define TEST_FUNCTION test_log1p
+#define TEST_RANDOM_EMAX 80
#include "tgeneric.c"
static void
diff --git a/tests/tpow.c b/tests/tpow.c
index 424f91ccc..0be98508a 100644
--- a/tests/tpow.c
+++ b/tests/tpow.c
@@ -57,6 +57,7 @@ test_pow (mpfr_ptr a, mpfr_srcptr b, mpfr_srcptr c, mp_rnd_t rnd_mode)
#define TEST_FUNCTION test_pow
#define TWO_ARGS
#define TEST_RANDOM_POS 16
+#define TGENERIC_NOWARNING 1
#include "tgeneric.c"
#define TEST_FUNCTION mpfr_pow_ui
diff --git a/tests/tsech.c b/tests/tsech.c
index e35a114b9..91d23ffc2 100644
--- a/tests/tsech.c
+++ b/tests/tsech.c
@@ -26,6 +26,8 @@ MA 02110-1301, USA. */
#include "mpfr-test.h"
#define TEST_FUNCTION mpfr_sech
+#define TEST_RANDOM_EMIN -64
+#define TEST_RANDOM_EMAX 36
#include "tgeneric.c"
static void
diff --git a/tests/tsinh.c b/tests/tsinh.c
index a4457f624..460e1afaf 100644
--- a/tests/tsinh.c
+++ b/tests/tsinh.c
@@ -26,6 +26,8 @@ MA 02110-1301, USA. */
#include "mpfr-test.h"
#define TEST_FUNCTION mpfr_sinh
+#define TEST_RANDOM_EMIN -36
+#define TEST_RANDOM_EMAX 36
#include "tgeneric.c"
static void
diff --git a/tests/ttanh.c b/tests/ttanh.c
index a5f8683f3..5985163ee 100644
--- a/tests/ttanh.c
+++ b/tests/ttanh.c
@@ -26,6 +26,8 @@ MA 02110-1301, USA. */
#include "mpfr-test.h"
#define TEST_FUNCTION mpfr_tanh
+#define TEST_RANDOM_EMIN -36
+#define TEST_RANDOM_EMAX 36
#include "tgeneric.c"
static void
diff --git a/tests/tzeta.c b/tests/tzeta.c
index b72bc1d14..5013c61aa 100644
--- a/tests/tzeta.c
+++ b/tests/tzeta.c
@@ -188,6 +188,8 @@ test2(void)
}
#define TEST_FUNCTION mpfr_zeta
+#define TEST_RANDOM_EMIN -48
+#define TEST_RANDOM_EMAX 31
#include "tgeneric.c"
/* Usage: tzeta - generic tests
@@ -384,7 +386,7 @@ main (int argc, char *argv[])
mpfr_clear (y);
mpfr_clear (z);
- test_generic (2, 70, 1);
+ test_generic (2, 70, 5);
test2 ();
tests_end_mpfr ();