X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Ftest-roundf-ieee.c;h=c5c81791b50ffe09e93b02aaed84ea891eb0ca60;hb=7170ee077cc44186a70cb264ceb8352a1349e05b;hp=3948401a2004dee1f3dd2f6243866d9c0a6c058c;hpb=4ee2d29251b218b1f4f520494499e55b6d1714ba;p=pspp diff --git a/tests/test-roundf-ieee.c b/tests/test-roundf-ieee.c index 3948401a20..c5c81791b5 100644 --- a/tests/test-roundf-ieee.c +++ b/tests/test-roundf-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-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 @@ -25,9 +25,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 (roundf (0.0f))); ASSERT (!!signbit (roundf (minus_zerof)) == !!signbit (minus_zerof)); + /* Positive numbers. */ + ASSERT (!signbit (roundf (0.3f))); + ASSERT (!signbit (roundf (0.7f))); + /* Negative numbers. */ + ASSERT (!!signbit (roundf (-0.3f)) == !!signbit (minus_zerof)); + ASSERT (!!signbit (roundf (-0.7f)) == !!signbit (minus_zerof)); return 0; }