changeset 9851:b664f16dd724

For now, cater to gnulib strtod inaccuracies. * tests/test-strtod.c (main): Allow 1-ulp error on expected fractional results. While not as nice from a QoI perspective, it is a quicker patch than correctly implementing decimal to binary rounding. Signed-off-by: Eric Blake <ebb9@byu.net>
author Eric Blake <ebb9@byu.net>
date Tue, 01 Apr 2008 06:34:34 -0600
parents 7f3ed6b093be
children 11f28e5a589f
files ChangeLog tests/test-strtod.c
diffstat 2 files changed, 16 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-04-01  Eric Blake  <ebb9@byu.net>
+
+	For now, cater to gnulib strtod inaccuracies.
+	* tests/test-strtod.c (main): Allow 1-ulp error on expected
+	fractional results.  While not as nice from a QoI perspective, it
+	is a quicker patch than correctly implementing decimal to binary
+	rounding.
+
 2008-03-31  Eric Blake  <ebb9@byu.net>
 
 	Guarantee a definition of NAN.
--- a/tests/test-strtod.c
+++ b/tests/test-strtod.c
@@ -157,7 +157,10 @@
     double result;
     errno = 0;
     result = strtod (input, &ptr);
-    ASSERT (result == 0.5);
+    /* FIXME - gnulib's version is rather inaccurate.  It would be
+       nice to guarantee an exact result, but for now, we settle for a
+       1-ulp error.  */
+    ASSERT (abs (result - 0.5) < FLT_EPSILON);
     ASSERT (ptr == input + 2);
     ASSERT (errno == 0);
   }
@@ -237,7 +240,10 @@
     double result;
     errno = 0;
     result = strtod (input, &ptr);
-    ASSERT (result == 0.5);
+    /* FIXME - gnulib's version is rather inaccurate.  It would be
+       nice to guarantee an exact result, but for now, we settle for a
+       1-ulp error.  */
+    ASSERT (abs (result - 0.5) < FLT_EPSILON);
     ASSERT (ptr == input + 4);
     ASSERT (errno == 0);
   }