X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-isnand-nolibm.c;h=fd739ca39f362595e5419a6cb627833958e2290e;hb=9cedf3e1ac7dbdddefb7e172156e9000de7d80c2;hp=391871f956364dec968047fe6a22221403bcd1dd;hpb=f2bbde92e487b8446ff201767c430306450220be;p=gnulib.git diff --git a/tests/test-isnand-nolibm.c b/tests/test-isnand-nolibm.c index 391871f95..fd739ca39 100644 --- a/tests/test-isnand-nolibm.c +++ b/tests/test-isnand-nolibm.c @@ -14,65 +14,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -/* Written by Bruno Haible , 2007. */ - #include #include "isnand-nolibm.h" -#include -#include -#include - -#include "nan.h" - -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - fflush (stderr); \ - abort (); \ - } \ - } \ - while (0) +#include "test-isnand.h" -int -main () -{ - /* Finite values. */ - ASSERT (!isnand (3.141)); - ASSERT (!isnand (3.141e30)); - ASSERT (!isnand (3.141e-30)); - ASSERT (!isnand (-2.718)); - ASSERT (!isnand (-2.718e30)); - ASSERT (!isnand (-2.718e-30)); - ASSERT (!isnand (0.0)); - ASSERT (!isnand (-0.0)); - /* Infinite values. */ - ASSERT (!isnand (1.0 / 0.0)); - ASSERT (!isnand (-1.0 / 0.0)); - /* Quiet NaN. */ - ASSERT (isnand (NaNd ())); -#if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT - /* Signalling NaN. */ - { - #define NWORDS \ - ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) - typedef union { double value; unsigned int word[NWORDS]; } memory_double; - memory_double m; - m.value = NaNd (); -# if DBL_EXPBIT0_BIT > 0 - m.word[DBL_EXPBIT0_WORD] ^= (unsigned int) 1 << (DBL_EXPBIT0_BIT - 1); -# else - m.word[DBL_EXPBIT0_WORD + (DBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)] - ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1); -# endif - m.word[DBL_EXPBIT0_WORD + (DBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)] - |= (unsigned int) 1 << DBL_EXPBIT0_BIT; - ASSERT (isnand (m.value)); - } -#endif - return 0; -}