Mercurial > hg > octave-kai > gnulib-hg
diff tests/test-ceil-ieee.c @ 13992:749c72ade953
ceil: Implement result sign according to IEEE 754.
* lib/ceil.c (MIN, MINUS_ZERO): New macros.
(FUNC): Return -0.0 for -1 < x < 0.
* tests/test-ceil2.c: Include minus-zero.h.
(MINUS_ZERO): New macro.
(ceil_reference): Keep in sync with lib/ceil.c.
* tests/test-ceilf2.c: Include minus-zero.h.
(MINUS_ZERO): New macro.
(ceilf_reference): Keep in sync with lib/ceil.c.
* tests/test-ceilf-ieee.c (main): Test also values between -1 and 1.
* tests/test-ceil-ieee.c (main): Likewise.
* tests/test-ceill-ieee.c (main): Likewise.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Wed, 22 Dec 2010 16:07:08 +0100 |
parents | 2c35dd380b9e |
children | 97fc9a21a8fb |
line wrap: on
line diff
--- a/tests/test-ceil-ieee.c +++ b/tests/test-ceil-ieee.c @@ -24,9 +24,20 @@ int main () { + /* See IEEE 754, section 6.3: + "the sign of the result of the round floating-point number to + integral value operation is the sign of the operand. These rules + shall apply even when operands or results are zero or infinite." */ + /* Zero. */ ASSERT (!signbit (ceil (0.0))); ASSERT (!!signbit (ceil (minus_zerod)) == !!signbit (minus_zerod)); + /* Positive numbers. */ + ASSERT (!signbit (ceil (0.3))); + ASSERT (!signbit (ceil (0.7))); + /* Negative numbers. */ + ASSERT (!!signbit (ceil (-0.3)) == !!signbit (minus_zerod)); + ASSERT (!!signbit (ceil (-0.7)) == !!signbit (minus_zerod)); return 0; }