[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
signbit tests: Strengthen tests
From: |
Bruno Haible |
Subject: |
signbit tests: Strengthen tests |
Date: |
Wed, 04 Oct 2023 10:22:50 +0200 |
The new tests/totalorder.c has a nice trick for producing NaNs with given
sign bit. Let me use this trick also in the 'signbit' tests:
2023-10-04 Bruno Haible <bruno@clisp.org>
signbit tests: Strengthen tests.
* tests/test-signbit.c (test_signbitf, test_signbitd, test_signbitl):
Test the sign bit both of a NaN value and of its negative.
diff --git a/tests/test-signbit.c b/tests/test-signbit.c
index 49083c2c9a..3d2fae405b 100644
--- a/tests/test-signbit.c
+++ b/tests/test-signbit.c
@@ -56,7 +56,17 @@ test_signbitf ()
ASSERT (!signbit (Infinityf ()));
ASSERT (signbit (- Infinityf ()));
/* Quiet NaN. */
- (void) signbit (zerof / zerof);
+ {
+ float nan = zerof / zerof;
+ float pos_nan;
+ float neg_nan;
+ if (signbit (nan))
+ pos_nan = - nan, neg_nan = nan;
+ else
+ pos_nan = nan, neg_nan = - nan;
+ ASSERT (!signbit (pos_nan));
+ ASSERT (signbit (neg_nan));
+ }
#if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
/* Signalling NaN. */
{
@@ -101,7 +111,17 @@ test_signbitd ()
ASSERT (!signbit (Infinityd ()));
ASSERT (signbit (- Infinityd ()));
/* Quiet NaN. */
- (void) signbit (zerod / zerod);
+ {
+ double nan = zerod / zerod;
+ double pos_nan;
+ double neg_nan;
+ if (signbit (nan))
+ pos_nan = - nan, neg_nan = nan;
+ else
+ pos_nan = nan, neg_nan = - nan;
+ ASSERT (!signbit (pos_nan));
+ ASSERT (signbit (neg_nan));
+ }
#if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
/* Signalling NaN. */
{
@@ -144,7 +164,17 @@ test_signbitl ()
ASSERT (!signbit (Infinityl ()));
ASSERT (signbit (- Infinityl ()));
/* Quiet NaN. */
- (void) signbit (zerol / zerol);
+ {
+ long double nan = zerol / zerol;
+ long double pos_nan;
+ long double neg_nan;
+ if (signbit (nan))
+ pos_nan = - nan, neg_nan = nan;
+ else
+ pos_nan = nan, neg_nan = - nan;
+ ASSERT (!signbit (pos_nan));
+ ASSERT (signbit (neg_nan));
+ }
#if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT
/* Signalling NaN. */
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- signbit tests: Strengthen tests,
Bruno Haible <=