Mercurial > hg > octave-lyh > gnulib-hg
changeset 16563:446b5d1c7986
rint* tests: More tests.
* tests/test-rint.h: New file, partially extracted from
tests/test-rintl.c.
* tests/test-rint.c: Include test-rint.h.
(main): Invoke test_function.
* tests/test-rintf.c: Include test-rint.h.
(main): Invoke test_function.
* tests/test-rintl.c: Include test-rint.h.
(main): Invoke test_function.
* modules/rint-tests (Files): Add tests/test-rint.h, tests/randomd.c.
(Makefile.am): Add randomd.c to test_rint_SOURCES.
* modules/rintf-tests (Files): Add tests/test-rint.h, tests/randomf.c.
(Makefile.am): Add randomf.c to test_rintf_SOURCES.
* modules/rintl-tests (Files): Add tests/test-rint.h, tests/randoml.c.
(Makefile.am): Add randoml.c to test_rintl_SOURCES.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 03 Mar 2012 17:17:19 +0100 |
parents | 3f4104450577 |
children | a5e3d6ba8dee |
files | ChangeLog modules/rint-tests modules/rintf-tests modules/rintl-tests tests/test-rint.c tests/test-rint.h tests/test-rintf.c tests/test-rintl.c |
diffstat | 8 files changed, 115 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2012-03-03 Bruno Haible <bruno@clisp.org> + + rint* tests: More tests. + * tests/test-rint.h: New file, partially extracted from + tests/test-rintl.c. + * tests/test-rint.c: Include test-rint.h. + (main): Invoke test_function. + * tests/test-rintf.c: Include test-rint.h. + (main): Invoke test_function. + * tests/test-rintl.c: Include test-rint.h. + (main): Invoke test_function. + * modules/rint-tests (Files): Add tests/test-rint.h, tests/randomd.c. + (Makefile.am): Add randomd.c to test_rint_SOURCES. + * modules/rintf-tests (Files): Add tests/test-rint.h, tests/randomf.c. + (Makefile.am): Add randomf.c to test_rintf_SOURCES. + * modules/rintl-tests (Files): Add tests/test-rint.h, tests/randoml.c. + (Makefile.am): Add randoml.c to test_rintl_SOURCES. + 2012-03-03 Bruno Haible <bruno@clisp.org> modf* tests: More tests.
--- a/modules/rint-tests +++ b/modules/rint-tests @@ -1,10 +1,12 @@ Files: tests/test-rint.c +tests/test-rint.h tests/minus-zero.h tests/infinity.h tests/nan.h tests/signature.h tests/macros.h +tests/randomd.c Depends-on: isnand-nolibm @@ -14,4 +16,5 @@ Makefile.am: TESTS += test-rint check_PROGRAMS += test-rint +test_rint_SOURCES = test-rint.c randomd.c test_rint_LDADD = $(LDADD) @RINT_LIBM@
--- a/modules/rintf-tests +++ b/modules/rintf-tests @@ -1,10 +1,12 @@ Files: tests/test-rintf.c +tests/test-rint.h tests/minus-zero.h tests/infinity.h tests/nan.h tests/signature.h tests/macros.h +tests/randomf.c Depends-on: isnanf-nolibm @@ -14,4 +16,5 @@ Makefile.am: TESTS += test-rintf check_PROGRAMS += test-rintf +test_rintf_SOURCES = test-rintf.c randomf.c test_rintf_LDADD = $(LDADD) @RINTF_LIBM@
--- a/modules/rintl-tests +++ b/modules/rintl-tests @@ -1,10 +1,12 @@ Files: tests/test-rintl.c +tests/test-rint.h tests/minus-zero.h tests/infinity.h tests/nan.h tests/signature.h tests/macros.h +tests/randoml.c Depends-on: fpucw @@ -16,4 +18,5 @@ Makefile.am: TESTS += test-rintl check_PROGRAMS += test-rintl +test_rintl_SOURCES = test-rintl.c randoml.c test_rintl_LDADD = $(LDADD) @RINTL_LIBM@
--- a/tests/test-rint.c +++ b/tests/test-rint.c @@ -32,6 +32,15 @@ #include "nan.h" #include "macros.h" +#define DOUBLE double +#define ISNAN isnand +#define INFINITY Infinityd () +#define NAN NaNd () +#define L_(literal) literal +#define RINT rint +#define RANDOM randomd +#include "test-rint.h" + int main () { @@ -75,11 +84,8 @@ ASSERT (rint (-65536.0) == -65536.0); ASSERT (rint (-65536.001) == -65536.0); ASSERT (rint (-2.341e31) == -2.341e31); - /* Infinite numbers. */ - ASSERT (rint (Infinityd ()) == Infinityd ()); - ASSERT (rint (- Infinityd ()) == - Infinityd ()); - /* NaNs. */ - ASSERT (isnand (rint (NaNd ()))); + + test_function (); return 0; }
new file mode 100644 --- /dev/null +++ b/tests/test-rint.h @@ -0,0 +1,55 @@ +/* Test of rint*() function family. + Copyright (C) 2012 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +static void +test_function (void) +{ + /* Infinite numbers. */ + ASSERT (RINT (INFINITY) == INFINITY); + ASSERT (RINT (- INFINITY) == - INFINITY); + /* NaNs. */ + ASSERT (ISNAN (RINT (NAN))); + + /* Randomized tests. */ + { + int i; + + for (i = 0; i < SIZEOF (RANDOM); i++) + { + DOUBLE x; + + x = L_(0.5) * RANDOM[i]; + ASSERT (RINT (x) == L_(0.0)); + x = - x; + ASSERT (RINT (x) == L_(0.0)); + + x = L_(1.0) - L_(0.5) * RANDOM[i]; + ASSERT (RINT (x) == L_(1.0)); + x = - x; + ASSERT (RINT (x) == - L_(1.0)); + + x = L_(1.0) + L_(0.5) * RANDOM[i]; + ASSERT (RINT (x) == L_(1.0)); + x = - x; + ASSERT (RINT (x) == - L_(1.0)); + + x = L_(2.0) - L_(0.5) * RANDOM[i]; + ASSERT (RINT (x) == L_(2.0)); + x = - x; + ASSERT (RINT (x) == - L_(2.0)); + } + } +}
--- a/tests/test-rintf.c +++ b/tests/test-rintf.c @@ -32,6 +32,15 @@ #include "nan.h" #include "macros.h" +#define DOUBLE float +#define ISNAN isnanf +#define INFINITY Infinityf () +#define NAN NaNf () +#define L_(literal) literal##f +#define RINT rintf +#define RANDOM randomf +#include "test-rint.h" + int main () { @@ -75,11 +84,8 @@ ASSERT (rintf (-65536.0f) == -65536.0f); ASSERT (rintf (-65536.01f) == -65536.0f); ASSERT (rintf (-2.341e31f) == -2.341e31f); - /* Infinite numbers. */ - ASSERT (rintf (Infinityf ()) == Infinityf ()); - ASSERT (rintf (- Infinityf ()) == - Infinityf ()); - /* NaNs. */ - ASSERT (isnanf (rintf (NaNf ()))); + + test_function (); return 0; }
--- a/tests/test-rintl.c +++ b/tests/test-rintl.c @@ -33,6 +33,15 @@ #include "nan.h" #include "macros.h" +#define DOUBLE long double +#define ISNAN isnanl +#define INFINITY Infinityl () +#define NAN NaNl () +#define L_(literal) literal##L +#define RINT rintl +#define RANDOM randoml +#include "test-rint.h" + int main () { @@ -80,11 +89,8 @@ ASSERT (rintl (-65536.0L) == -65536.0L); ASSERT (rintl (-65536.001L) == -65536.0L); ASSERT (rintl (-2.341e31L) == -2.341e31L); - /* Infinite numbers. */ - ASSERT (rintl (Infinityl ()) == Infinityl ()); - ASSERT (rintl (- Infinityl ()) == - Infinityl ()); - /* NaNs. */ - ASSERT (isnanl (rintl (NaNl ()))); + + test_function (); return 0; }