* tests/test-ceilf1.c (main): Ensure correct sign of result.
* tests/test-ceill.c (main): Likewise.
* tests/test-floorf1.c (main): Likewise.
* tests/test-floorl.c (main): Likewise.
* tests/test-round1.c (main): Likewise.
* tests/test-roundf1.c (main): Likewise.
* tests/test-roundl.c (main): Likewise.
* tests/test-trunc1.c (main): Likewise.
* tests/test-truncf1.c (main): Likewise.
* tests/test-truncl.c (main): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
+2010-11-04 Eric Blake <eblake@redhat.com>
+
+ ceil, floor, round, trunc: enhance tests of -0
+ * tests/test-ceilf1.c (main): Ensure correct sign of result.
+ * tests/test-ceill.c (main): Likewise.
+ * tests/test-floorf1.c (main): Likewise.
+ * tests/test-floorl.c (main): Likewise.
+ * tests/test-round1.c (main): Likewise.
+ * tests/test-roundf1.c (main): Likewise.
+ * tests/test-roundl.c (main): Likewise.
+ * tests/test-trunc1.c (main): Likewise.
+ * tests/test-truncf1.c (main): Likewise.
+ * tests/test-truncl.c (main): Likewise.
+
2010-11-04 Eric Blake <eblake@redhat.com>
frexp, tests: work around ICC bug with -zero
Depends-on:
float
isnanf-nolibm
+signbit
stdbool
stdint
{
/* Zero. */
ASSERT (ceilf (0.0f) == 0.0f);
+ ASSERT (!signbit (ceilf (0.0f)));
ASSERT (ceilf (minus_zerof) == 0.0f);
+ ASSERT (!!signbit (minus_zerof) == !!signbit (ceilf (minus_zerof)));
/* Positive numbers. */
ASSERT (ceilf (0.3f) == 1.0f);
ASSERT (ceilf (0.7f) == 1.0f);
/* Zero. */
ASSERT (ceill (0.0L) == 0.0L);
+ ASSERT (!signbit (ceill (0.0L)));
ASSERT (ceill (minus_zerol) == 0.0L);
+ ASSERT (!!signbit (minus_zerol) == !!signbit (ceill (minus_zerol)));
/* Positive numbers. */
ASSERT (ceill (0.3L) == 1.0L);
ASSERT (ceill (0.7L) == 1.0L);
{
/* Zero. */
ASSERT (floorf (0.0f) == 0.0f);
+ ASSERT (!signbit (floorf (0.0f)));
ASSERT (floorf (minus_zerof) == 0.0f);
+ ASSERT (!!signbit (minus_zerof) == !!signbit (floorf (minus_zerof)));
/* Positive numbers. */
ASSERT (floorf (0.3f) == 0.0f);
ASSERT (floorf (0.7f) == 0.0f);
/* Zero. */
ASSERT (floorl (0.0L) == 0.0L);
+ ASSERT (!signbit (floorl (0.0L)));
ASSERT (floorl (minus_zerol) == 0.0L);
+ ASSERT (!!signbit (minus_zerol) == !!signbit (floorl (minus_zerol)));
/* Positive numbers. */
ASSERT (floorl (0.3L) == 0.0L);
ASSERT (floorl (0.7L) == 0.0L);
{
/* Zero. */
ASSERT (round (0.0) == 0.0);
+ ASSERT (!signbit (round (0.0)));
ASSERT (round (minus_zerod) == 0.0);
+ ASSERT (!!signbit (minus_zerod) == !!signbit (round (minus_zerod)));
/* Positive numbers. */
ASSERT (round (0.3) == 0.0);
ASSERT (round (0.5) == 1.0);
{
/* Zero. */
ASSERT (roundf (0.0f) == 0.0f);
+ ASSERT (!signbit (roundf (0.0f)));
ASSERT (roundf (minus_zerof) == 0.0f);
+ ASSERT (!!signbit (minus_zerof) == !!signbit (roundf (minus_zerof)));
/* Positive numbers. */
ASSERT (roundf (0.3f) == 0.0f);
ASSERT (roundf (0.5f) == 1.0f);
/* Zero. */
ASSERT (roundl (0.0L) == 0.0L);
+ ASSERT (!signbit (roundl (0.0L)));
ASSERT (roundl (minus_zerol) == 0.0L);
+ ASSERT (!!signbit (minus_zerol) == !!signbit (roundl (minus_zerol)));
/* Positive numbers. */
ASSERT (roundl (0.3L) == 0.0L);
ASSERT (roundl (0.5L) == 1.0L);
{
/* Zero. */
ASSERT (trunc (0.0) == 0.0);
+ ASSERT (!signbit (trunc (0.0)));
ASSERT (trunc (minus_zerod) == 0.0);
+ ASSERT (!!signbit (minus_zerod) == !!signbit (trunc (minus_zerod)));
/* Positive numbers. */
ASSERT (trunc (0.3) == 0.0);
ASSERT (trunc (0.7) == 0.0);
{
/* Zero. */
ASSERT (truncf (0.0f) == 0.0f);
+ ASSERT (!signbit (truncf (0.0f)));
ASSERT (truncf (minus_zerof) == 0.0f);
+ ASSERT (!!signbit (minus_zerof) == !!signbit (truncf (minus_zerof)));
/* Positive numbers. */
ASSERT (truncf (0.3f) == 0.0f);
ASSERT (truncf (0.7f) == 0.0f);
/* Zero. */
ASSERT (truncl (0.0L) == 0.0L);
+ ASSERT (!signbit (truncl (0.0L)));
ASSERT (truncl (minus_zerol) == 0.0L);
+ ASSERT (!!signbit (minus_zerol) == !!signbit (truncl (minus_zerol)));
/* Positive numbers. */
ASSERT (truncl (0.3L) == 0.0L);
ASSERT (truncl (0.7L) == 0.0L);