X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-round-ieee.c;h=13743cfec3c49ea63ef702c0a8b4e1476bf6a171;hb=d94bcb85e2e486d9ae424721cd8a6fd60553e6f6;hp=0d5ad86df752b1b6b0a6bd83844b2bfee0f196a7;hpb=9b144e908f361bc95b309fd33bfa0bc09ae55cc7;p=gnulib.git diff --git a/tests/test-round-ieee.c b/tests/test-round-ieee.c index 0d5ad86df..13743cfec 100644 --- a/tests/test-round-ieee.c +++ b/tests/test-round-ieee.c @@ -1,5 +1,5 @@ /* Test of rounding to nearest, breaking ties away from zero. - Copyright (C) 2010 Free Software Foundation, Inc. + Copyright (C) 2010-2013 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 @@ -12,22 +12,43 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program; if not, see . */ #include #include +#include "isnand-nolibm.h" #include "minus-zero.h" +#include "infinity.h" +#include "nan.h" #include "macros.h" 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 (round (0.0))); ASSERT (!!signbit (round (minus_zerod)) == !!signbit (minus_zerod)); + /* Positive numbers. */ + ASSERT (!signbit (round (0.3))); + ASSERT (!signbit (round (0.7))); + /* Negative numbers. */ + ASSERT (!!signbit (round (-0.3)) == !!signbit (minus_zerod)); + ASSERT (!!signbit (round (-0.7)) == !!signbit (minus_zerod)); + + /* [MX] shaded specification in POSIX. */ + + /* NaN. */ + ASSERT (isnand (round (NaNd ()))); + /* Infinity. */ + ASSERT (round (Infinityd ()) == Infinityd ()); + ASSERT (round (- Infinityd ()) == - Infinityd ()); return 0; }