X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=inline;f=tests%2Ftest-truncl-ieee.c;h=9b73a1c04b5cc2cc69bd03abfae049308970f796;hb=628f0eea1228ae83c864b65ef3fe91bcdb4465ee;hp=de6c9adf0b0bcbf6c49965b6eb78395d418a197d;hpb=8fe3f433681b195f1deef11bcb4ccec850597c81;p=gnulib.git diff --git a/tests/test-truncl-ieee.c b/tests/test-truncl-ieee.c index de6c9adf0..9b73a1c04 100644 --- a/tests/test-truncl-ieee.c +++ b/tests/test-truncl-ieee.c @@ -1,5 +1,5 @@ /* Test of rounding towards zero. - Copyright (C) 2010 Free Software Foundation, Inc. + Copyright (C) 2010-2011 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 @@ -29,9 +29,20 @@ main () BEGIN_LONG_DOUBLE_ROUNDING (); + /* 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 (truncl (0.0L))); ASSERT (!!signbit (truncl (minus_zerol)) == !!signbit (minus_zerol)); + /* Positive numbers. */ + ASSERT (!signbit (truncl (0.3L))); + ASSERT (!signbit (truncl (0.7L))); + /* Negative numbers. */ + ASSERT (!!signbit (truncl (-0.3L)) == !!signbit (minus_zerol)); + ASSERT (!!signbit (truncl (-0.7L)) == !!signbit (minus_zerol)); return 0; }