nonblocking: reduce dependency
[gnulib.git] / tests / test-round1.c
index 625b9ff..6633773 100644 (file)
@@ -1,9 +1,9 @@
 /* Test of rounding to nearest, breaking ties away from zero.
 /* Test of rounding to nearest, breaking ties away from zero.
-   Copyright (C) 2007-2008 Free Software Foundation, Inc.
+   Copyright (C) 2007-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
 
    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 2, or (at your option)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
    any later version.
 
    This program is distributed in the hope that it will be useful,
 
 #include <math.h>
 
 
 #include <math.h>
 
-#include <stdio.h>
-#include <stdlib.h>
+#include "signature.h"
+SIGNATURE_CHECK (round, double, (double));
 
 
-#include "isnand.h"
-
-#define ASSERT(expr) \
-  do                                                                        \
-    {                                                                       \
-      if (!(expr))                                                          \
-        {                                                                   \
-          fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
-          abort ();                                                         \
-        }                                                                   \
-    }                                                                       \
-  while (0)
-
-/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0.  */
-#ifdef __DECC
-static double
-NaN ()
-{
-  static double zero = 0.0;
-  return zero / zero;
-}
-#else
-# define NaN() (0.0 / 0.0)
-#endif
+#include "isnand-nolibm.h"
+#include "minus-zero.h"
+#include "nan.h"
+#include "macros.h"
 
 int
 main ()
 {
   /* Zero.  */
   ASSERT (round (0.0) == 0.0);
 
 int
 main ()
 {
   /* Zero.  */
   ASSERT (round (0.0) == 0.0);
-  ASSERT (round (-0.0) == 0.0);
+  ASSERT (round (minus_zerod) == 0.0);
   /* Positive numbers.  */
   ASSERT (round (0.3) == 0.0);
   ASSERT (round (0.5) == 1.0);
   /* Positive numbers.  */
   ASSERT (round (0.3) == 0.0);
   ASSERT (round (0.5) == 1.0);
@@ -86,7 +66,7 @@ main ()
   ASSERT (round (1.0 / 0.0) == 1.0 / 0.0);
   ASSERT (round (-1.0 / 0.0) == -1.0 / 0.0);
   /* NaNs.  */
   ASSERT (round (1.0 / 0.0) == 1.0 / 0.0);
   ASSERT (round (-1.0 / 0.0) == -1.0 / 0.0);
   /* NaNs.  */
-  ASSERT (isnand (round (NaN ())));
+  ASSERT (isnand (round (NaNd ())));
 
   return 0;
 }
 
   return 0;
 }