summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--tests/test-strtod.c10
-rw-r--r--tests/test-strtold.c10
3 files changed, 10 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index d4cf812b97..37c9202969 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2019-01-31 Bruno Haible <bruno@clisp.org>
+ strtod, strtold tests: Simplify tests.
+ * tests/test-strtod.c (main): Assume no rounding errors for 0.5.
+ * tests/test-strtold.c (main): Likewise.
+
+2019-01-31 Bruno Haible <bruno@clisp.org>
+
strtod, strtold: Avoid unnecessary rounding errors.
* lib/strtod.c (parse_number): Drop trailing zeroes before doing the
decimal to DOUBLE conversion.
diff --git a/tests/test-strtod.c b/tests/test-strtod.c
index c2297b5b4f..69eb9742e0 100644
--- a/tests/test-strtod.c
+++ b/tests/test-strtod.c
@@ -155,10 +155,7 @@ main (void)
double result;
errno = 0;
result = strtod (input, &ptr);
- /* 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 (FABS (result - 0.5) < DBL_EPSILON);
+ ASSERT (result == 0.5);
ASSERT (ptr == input + 2);
ASSERT (errno == 0);
}
@@ -238,10 +235,7 @@ main (void)
double result;
errno = 0;
result = strtod (input, &ptr);
- /* 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 (FABS (result - 0.5) < DBL_EPSILON);
+ ASSERT (result == 0.5);
ASSERT (ptr == input + 4);
ASSERT (errno == 0);
}
diff --git a/tests/test-strtold.c b/tests/test-strtold.c
index cd317875b9..9815e7ae2b 100644
--- a/tests/test-strtold.c
+++ b/tests/test-strtold.c
@@ -155,10 +155,7 @@ main (void)
long double result;
errno = 0;
result = strtold (input, &ptr);
- /* 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 (FABSL (result - 0.5L) < LDBL_EPSILON);
+ ASSERT (result == 0.5L);
ASSERT (ptr == input + 2);
ASSERT (errno == 0);
}
@@ -238,10 +235,7 @@ main (void)
long double result;
errno = 0;
result = strtold (input, &ptr);
- /* 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 (FABSL (result - 0.5L) < LDBL_EPSILON);
+ ASSERT (result == 0.5L);
ASSERT (ptr == input + 4);
ASSERT (errno == 0);
}