X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-ceill-ieee.c;h=90a52011c38f0863dedde45a279f01a5d61eee1e;hb=59b191ed5bcff4198c9c89d0d52cec1880b9568d;hp=e7b541c8318450ae63b55275ec2c498126b935b7;hpb=581b1c58f176167b473c8e79ed7b3f1786adfd02;p=gnulib.git diff --git a/tests/test-ceill-ieee.c b/tests/test-ceill-ieee.c index e7b541c83..90a52011c 100644 --- a/tests/test-ceill-ieee.c +++ b/tests/test-ceill-ieee.c @@ -1,5 +1,5 @@ /* Test of rounding towards positive infinity. - 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 (ceill (0.0L))); ASSERT (!!signbit (ceill (minus_zerol)) == !!signbit (minus_zerol)); + /* Positive numbers. */ + ASSERT (!signbit (ceill (0.3L))); + ASSERT (!signbit (ceill (0.7L))); + /* Negative numbers. */ + ASSERT (!!signbit (ceill (-0.3L)) == !!signbit (minus_zerol)); + ASSERT (!!signbit (ceill (-0.7L)) == !!signbit (minus_zerol)); return 0; }