Mercurial > hg > octave-lyh > gnulib-hg
changeset 16560:f56ad1ce5e9e
ldexp* tests: More tests.
* tests/test-ldexp.h (test_function): Add some pseudo-randomized tests.
* tests/test-ldexp.c (RANDOM): New macro.
* tests/test-ldexpf.c (RANDOM): New macro.
* tests/test-ldexpl.c (RANDOM): New macro.
* modules/ldexp-tests (Files): Add tests/randomd.c.
(Makefile.am): Add randomd.c to test_ldexp_SOURCES.
* modules/ldexpf-tests (Files): Add tests/randomf.c.
(Makefile.am): Add randomf.c to test_ldexpf_SOURCES.
* modules/ldexpl-tests (Files): Add tests/randoml.c.
(Makefile.am): Add randoml.c to test_ldexpl_SOURCES.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 03 Mar 2012 14:59:07 +0100 |
parents | b576f9917ed1 |
children | 82c859774444 |
files | ChangeLog modules/ldexp-tests modules/ldexpf-tests modules/ldexpl-tests tests/test-ldexp.c tests/test-ldexp.h tests/test-ldexpf.c tests/test-ldexpl.c |
diffstat | 8 files changed, 39 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2012-03-03 Bruno Haible <bruno@clisp.org> + + ldexp* tests: More tests. + * tests/test-ldexp.h (test_function): Add some pseudo-randomized tests. + * tests/test-ldexp.c (RANDOM): New macro. + * tests/test-ldexpf.c (RANDOM): New macro. + * tests/test-ldexpl.c (RANDOM): New macro. + * modules/ldexp-tests (Files): Add tests/randomd.c. + (Makefile.am): Add randomd.c to test_ldexp_SOURCES. + * modules/ldexpf-tests (Files): Add tests/randomf.c. + (Makefile.am): Add randomf.c to test_ldexpf_SOURCES. + * modules/ldexpl-tests (Files): Add tests/randoml.c. + (Makefile.am): Add randoml.c to test_ldexpl_SOURCES. + 2012-03-03 Bruno Haible <bruno@clisp.org> frexp* tests: More tests.
--- a/modules/ldexp-tests +++ b/modules/ldexp-tests @@ -6,6 +6,7 @@ tests/nan.h tests/signature.h tests/macros.h +tests/randomd.c Depends-on: isnand-nolibm @@ -17,4 +18,5 @@ Makefile.am: TESTS += test-ldexp check_PROGRAMS += test-ldexp +test_ldexp_SOURCES = test-ldexp.c randomd.c test_ldexp_LDADD = $(LDADD) @LDEXP_LIBM@
--- a/modules/ldexpf-tests +++ b/modules/ldexpf-tests @@ -6,6 +6,7 @@ tests/nan.h tests/signature.h tests/macros.h +tests/randomf.c Depends-on: isnanf-nolibm @@ -17,4 +18,5 @@ Makefile.am: TESTS += test-ldexpf check_PROGRAMS += test-ldexpf +test_ldexpf_SOURCES = test-ldexpf.c randomf.c test_ldexpf_LDADD = $(LDADD) @LDEXPF_LIBM@
--- a/modules/ldexpl-tests +++ b/modules/ldexpl-tests @@ -6,6 +6,7 @@ tests/nan.h tests/signature.h tests/macros.h +tests/randoml.c Depends-on: fpucw @@ -18,4 +19,5 @@ Makefile.am: TESTS += test-ldexpl check_PROGRAMS += test-ldexpl +test_ldexpl_SOURCES = test-ldexpl.c randoml.c test_ldexpl_LDADD = $(LDADD) @LDEXPL_LIBM@
--- a/tests/test-ldexp.c +++ b/tests/test-ldexp.c @@ -40,9 +40,10 @@ #define NAN NaNd () #define L_(literal) literal #define MINUS_ZERO minus_zerod -#define LDEXP ldexp #define MIN_EXP DBL_MIN_EXP #define MAX_EXP DBL_MAX_EXP +#define LDEXP ldexp +#define RANDOM randomd #include "test-ldexp.h" int
--- a/tests/test-ldexp.h +++ b/tests/test-ldexp.h @@ -114,4 +114,17 @@ y = LDEXP (x, 0); ASSERT (y == x); y = LDEXP (x, 5); ASSERT (y == x * L_(32.0)); } + + /* Randomized tests. */ + for (i = 0; i < SIZEOF (RANDOM); i++) + { + int u, v; + + x = L_(20.0) * RANDOM[i] - L_(10.0); /* -10.0 <= x <= 10.0 */ + /* LDEXP only does rounding when it returns a denormalized number + or there is underflow. It doesn't happen here. */ + for (u = -10; u <= 10; u++) + for (v = -10; v <= 10; v++) + ASSERT (LDEXP (x, u + v) == LDEXP (LDEXP (x, u), v)); + } }
--- a/tests/test-ldexpf.c +++ b/tests/test-ldexpf.c @@ -40,9 +40,10 @@ #define NAN NaNf () #define L_(literal) literal##f #define MINUS_ZERO minus_zerof -#define LDEXP ldexpf #define MIN_EXP FLT_MIN_EXP #define MAX_EXP FLT_MAX_EXP +#define LDEXP ldexpf +#define RANDOM randomf #include "test-ldexp.h" int
--- a/tests/test-ldexpl.c +++ b/tests/test-ldexpl.c @@ -41,9 +41,10 @@ #define NAN NaNl () #define L_(literal) literal##L #define MINUS_ZERO minus_zerol -#define LDEXP ldexpl #define MIN_EXP LDBL_MIN_EXP #define MAX_EXP LDBL_MAX_EXP +#define LDEXP ldexpl +#define RANDOM randoml #include "test-ldexp.h" int