summaryrefslogtreecommitdiff
path: root/tests/test-signbit.c
diff options
context:
space:
mode:
authorEric Blake <ebb9@byu.net>2008-03-30 16:40:35 -0600
committerEric Blake <ebb9@byu.net>2008-03-30 16:42:20 -0600
commit0ac95ec362e080d762ac47d2560bac7f741e2861 (patch)
tree270a626467c71e8e4613ac45959d1bd081a3caa6 /tests/test-signbit.c
parent53916448ea693ff5d90369d91fbdab3bf2c62d4d (diff)
downloadgnulib-0ac95ec362e080d762ac47d2560bac7f741e2861.tar.gz
Test signbit behavior on zeros.
* tests/test-signbit.c (test_signbitf): Add tests for zero. (test_signbitd, test_signbitl): Likewise. Signed-off-by: Eric Blake <ebb9@byu.net>
Diffstat (limited to 'tests/test-signbit.c')
-rw-r--r--tests/test-signbit.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/tests/test-signbit.c b/tests/test-signbit.c
index 9cc65e3058..3e0185916b 100644
--- a/tests/test-signbit.c
+++ b/tests/test-signbit.c
@@ -1,5 +1,5 @@
/* Test of signbit() substitute.
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2008 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
@@ -49,6 +49,12 @@ test_signbitf ()
ASSERT (signbit (-2.718f));
ASSERT (signbit (-2.718e30f));
ASSERT (signbit (-2.718e-30f));
+ /* Zeros. */
+ ASSERT (!signbit (0.0f));
+ if (1.0f / -zerof < 0)
+ ASSERT (signbit (-0.0f));
+ else
+ ASSERT (!signbit (-0.0f));
/* Infinite values. */
ASSERT (!signbit (1.0f / 0.0f));
ASSERT (signbit (-1.0f / 0.0f));
@@ -88,6 +94,12 @@ test_signbitd ()
ASSERT (signbit (-2.718));
ASSERT (signbit (-2.718e30));
ASSERT (signbit (-2.718e-30));
+ /* Zeros. */
+ ASSERT (!signbit (0.0));
+ if (1.0 / -zerod < 0)
+ ASSERT (signbit (-0.0));
+ else
+ ASSERT (!signbit (-0.0));
/* Infinite values. */
ASSERT (!signbit (1.0 / 0.0));
ASSERT (signbit (-1.0 / 0.0));
@@ -125,6 +137,12 @@ test_signbitl ()
ASSERT (signbit (-2.718L));
ASSERT (signbit (-2.718e30L));
ASSERT (signbit (-2.718e-30L));
+ /* Zeros. */
+ ASSERT (!signbit (0.0L));
+ if (1.0L / -zerol < 0)
+ ASSERT (signbit (-0.0L));
+ else
+ ASSERT (!signbit (-0.0L));
/* Infinite values. */
ASSERT (!signbit (1.0L / 0.0L));
ASSERT (signbit (-1.0L / 0.0L));