Commit ff53c39e authored by Bruno Haible's avatar Bruno Haible

fabs* tests: More tests.

* tests/test-fabs.h: New file, partially extracted from
tests/test-fabsl.c.
* tests/test-fabs.c (RANDOM): New macro.
* tests/test-fabsf.c (RANDOM): New macro.
* tests/test-fabsl.c (RANDOM): New macro.
* modules/fabs-tests (Files): Add tests/randomd.c.
(Makefile.am): Add randomd.c to test_fabs_SOURCES.
* modules/fabsf-tests (Files): Add tests/randomf.c.
(Makefile.am): Add randomf.c to test_fabsf_SOURCES.
* modules/fabsl-tests (Files): Add tests/randoml.c.
(Makefile.am): Add randoml.c to test_fabsl_SOURCES.
parent d9a34d52
2012-03-03 Bruno Haible <bruno@clisp.org>
fabs* tests: More tests.
* tests/test-fabs.h: New file, partially extracted from
tests/test-fabsl.c.
* tests/test-fabs.c (RANDOM): New macro.
* tests/test-fabsf.c (RANDOM): New macro.
* tests/test-fabsl.c (RANDOM): New macro.
* modules/fabs-tests (Files): Add tests/randomd.c.
(Makefile.am): Add randomd.c to test_fabs_SOURCES.
* modules/fabsf-tests (Files): Add tests/randomf.c.
(Makefile.am): Add randomf.c to test_fabsf_SOURCES.
* modules/fabsl-tests (Files): Add tests/randoml.c.
(Makefile.am): Add randoml.c to test_fabsl_SOURCES.
2012-03-03 Bruno Haible <bruno@clisp.org>
ldexp* tests: More tests.
Files:
tests/test-fabs.c
tests/test-fabs.h
tests/signature.h
tests/minus-zero.h
tests/macros.h
tests/randomd.c
Depends-on:
signbit
configure.ac:
Makefile.am:
TESTS += test-fabs
check_PROGRAMS += test-fabs
test_fabs_SOURCES = test-fabs.c randomd.c
test_fabs_LDADD = $(LDADD) @FABS_LIBM@
Files:
tests/test-fabsf.c
tests/test-fabs.h
tests/signature.h
tests/minus-zero.h
tests/macros.h
tests/randomf.c
Depends-on:
signbit
configure.ac:
Makefile.am:
TESTS += test-fabsf
check_PROGRAMS += test-fabsf
test_fabsf_SOURCES = test-fabsf.c randomf.c
test_fabsf_LDADD = $(LDADD) @FABSF_LIBM@
Files:
tests/test-fabsl.c
tests/test-fabs.h
tests/signature.h
tests/minus-zero.h
tests/macros.h
tests/randoml.c
Depends-on:
signbit
configure.ac:
Makefile.am:
TESTS += test-fabsl
check_PROGRAMS += test-fabsl
test_fabsl_SOURCES = test-fabsl.c randoml.c
test_fabsl_LDADD = $(LDADD) @FABSL_LIBM@
......@@ -28,9 +28,12 @@ SIGNATURE_CHECK (fabs, double, (double));
#include "macros.h"
#include "minus-zero.h"
volatile double x;
double y;
double zero = 0.0;
#define DOUBLE double
#define L_(literal) literal
#define MINUS_ZERO minus_zerod
#define FABS fabs
#define RANDOM randomd
#include "test-fabs.h"
int
main ()
......@@ -45,16 +48,7 @@ main ()
y = fabs (x);
ASSERT (y == 0.6);
/* Signed zero. */
x = 0.0;
y = fabs (x);
ASSERT (y == 0.0);
ASSERT (memcmp (&y, &zero, sizeof y) == 0);
x = minus_zerod;
y = fabs (x);
ASSERT (y == 0.0);
ASSERT (memcmp (&y, &zero, sizeof y) == 0);
test_function ();
return 0;
}
/* Test of fabs*() 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)
{
volatile DOUBLE x;
DOUBLE y;
/* Signed zero. */
x = L_(0.0);
y = FABS (x);
ASSERT (y == L_(0.0));
ASSERT (!signbit (y));
x = MINUS_ZERO;
y = FABS (x);
ASSERT (y == L_(0.0));
ASSERT (!signbit (y));
/* Randomized tests. */
{
int i;
for (i = 0; i < SIZEOF (RANDOM); i++)
{
x = L_(10.0) * RANDOM[i]; /* 0.0 <= x <= 10.0 */
ASSERT (FABS (x) == x);
ASSERT (FABS (- x) == x);
}
}
}
volatile DOUBLE x;
DOUBLE y;
......@@ -28,9 +28,12 @@ SIGNATURE_CHECK (fabsf, float, (float));
#include "macros.h"
#include "minus-zero.h"
volatile float x;
float y;
float zero = 0.0f;
#define DOUBLE float
#define L_(literal) literal##f
#define MINUS_ZERO minus_zerof
#define FABS fabsf
#define RANDOM randomf
#include "test-fabs.h"
int
main ()
......@@ -45,16 +48,7 @@ main ()
y = fabsf (x);
ASSERT (y == 0.6f);
/* Signed zero. */
x = 0.0f;
y = fabsf (x);
ASSERT (y == 0.0f);
ASSERT (memcmp (&y, &zero, sizeof y) == 0);
x = minus_zerof;
y = fabsf (x);
ASSERT (y == 0.0f);
ASSERT (memcmp (&y, &zero, sizeof y) == 0);
test_function ();
return 0;
}
......@@ -28,9 +28,12 @@ SIGNATURE_CHECK (fabsl, long double, (long double));
#include "macros.h"
#include "minus-zero.h"
volatile long double x;
long double y;
long double zero = 0.0L;
#define DOUBLE long double
#define L_(literal) literal##L
#define MINUS_ZERO minus_zerol
#define FABS fabsl
#define RANDOM randoml
#include "test-fabs.h"
int
main ()
......@@ -45,16 +48,7 @@ main ()
y = fabsl (x);
ASSERT (y == 0.6L);
/* Signed zero. */
x = 0.0L;
y = fabsl (x);
ASSERT (y == 0.0L);
ASSERT (memcmp (&y, &zero, sizeof y) == 0);
x = minus_zerol;
y = fabsl (x);
ASSERT (y == 0.0L);
ASSERT (memcmp (&y, &zero, sizeof y) == 0);
test_function ();
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment