ceil, floor, round, trunc: enhance tests of -0
authorEric Blake <eblake@redhat.com>
Thu, 4 Nov 2010 21:53:52 +0000 (15:53 -0600)
committerEric Blake <eblake@redhat.com>
Fri, 5 Nov 2010 13:47:31 +0000 (07:47 -0600)
* 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>
12 files changed:
ChangeLog
modules/ceilf-tests
tests/test-ceilf1.c
tests/test-ceill.c
tests/test-floorf1.c
tests/test-floorl.c
tests/test-round1.c
tests/test-roundf1.c
tests/test-roundl.c
tests/test-trunc1.c
tests/test-truncf1.c
tests/test-truncl.c

index 3106ba7780f0cd6242a86d8d60310d3d4a5a079f..ea1a01f5eb8d061248b71b966ba364bafee27f10 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+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
index 040fd1bbf5f38730e4482acb5ad1b85f5086c9ba..a0472a7c41104a25bf792d8dbbe4f01dcde0e682 100644 (file)
@@ -9,6 +9,7 @@ tests/macros.h
 Depends-on:
 float
 isnanf-nolibm
+signbit
 stdbool
 stdint
 
index 86bb49e00df99c6651c880a67b3ca9c5c06070a6..4e382476afab126f47db9581b157dc2ed4cf2910 100644 (file)
@@ -33,7 +33,9 @@ main ()
 {
   /* 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);
index cac45b77f067d52568aa84f5564d643c7a8cdb80..f627a9e299c577334f69360a9655a078709b0681 100644 (file)
@@ -40,7 +40,9 @@ main ()
 
   /* 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);
index 39261d805715a60e506a5cb023ec6e590f846b4c..f0f771624e353416721b601da91706ccb555f94c 100644 (file)
@@ -33,7 +33,9 @@ main ()
 {
   /* 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);
index 84717f8bebd5c49c8025c6973f7dd57acf4f5c2a..2675a9e5d5821a2970e0050d9349e067b7a95c0a 100644 (file)
@@ -40,7 +40,9 @@ main ()
 
   /* 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);
index 86fd1de7ab53f5882ce221ccf1c9484461e5476a..4711a743615ddfa810ce4e99f67e5c87e4a20905 100644 (file)
@@ -35,7 +35,9 @@ main ()
 {
   /* 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);
index 33609bb6bd8606b4e9870c8f26def680939ce6b9..354dcf02dc9538ce1a197bbf3f637edfefeb6d39 100644 (file)
@@ -35,7 +35,9 @@ main ()
 {
   /* 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);
index f06db8a017777fdac4ab733a762e9a6ad4e90734..bdb8ddfec8011b35d03387187a96465cd1007ff2 100644 (file)
@@ -42,7 +42,9 @@ main ()
 
   /* 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);
index 69530b8753a08214a5da9c7eb6232d2105455d1e..5587a41c0b3f194442bdb59f936c05ac28b8bafa 100644 (file)
@@ -33,7 +33,9 @@ main ()
 {
   /* 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);
index b5f48dd6ae5b1cdb74c02a67eb9fe72c9c2c8d44..6953c8bbcfbf3c4d840b1a0366d207e5637117da 100644 (file)
@@ -33,7 +33,9 @@ main ()
 {
   /* 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);
index ab1f4443f36d652b6318adf9d72b66011a5311ba..f2a9644eac0f47d4ec899a9248d68bc4ce36307a 100644 (file)
@@ -40,7 +40,9 @@ main ()
 
   /* 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);