X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-exp2-ieee.h;fp=tests%2Ftest-exp2-ieee.h;h=e9ab009c3f899fe007808d71e4e7c361f92f256d;hb=bf95c3f0d49aa03d952dc3540b6a7c2a42414e1a;hp=0000000000000000000000000000000000000000;hpb=16be858092089440e253887ee026c8f446322005;p=gnulib.git diff --git a/tests/test-exp2-ieee.h b/tests/test-exp2-ieee.h new file mode 100644 index 000000000..e9ab009c3 --- /dev/null +++ b/tests/test-exp2-ieee.h @@ -0,0 +1,43 @@ +/* Test of exp2*() function family. + Copyright (C) 2012 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 + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + 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, see . */ + +static void +test_function (void) +{ + /* [MX] shaded specification in POSIX. */ + + /* Underflow. */ + { + DOUBLE z = EXP2 (-100000.0); + ASSERT (z == L_(0.0)); + ASSERT (!signbit (z)); + } + + /* NaN. */ + ASSERT (ISNAN (EXP2 (NAN))); + + /* Zero. */ + ASSERT (EXP2 (L_(0.0)) == L_(1.0)); + ASSERT (EXP2 (MINUS_ZERO) == L_(1.0)); + + /* Infinity. */ + { + DOUBLE z = EXP2 (- INFINITY); + ASSERT (z == L_(0.0)); + ASSERT (!signbit (z)); + } + ASSERT (EXP2 (INFINITY) == INFINITY); +}