char *result =
my_asnprintf (NULL, &length, "%e %d", 12.75, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "1.275000e+01 33") == 0);
+ ASSERT (strcmp (result, "1.275000e+01 33") == 0
+ || strcmp (result, "1.275000e+001 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%e %d", 1234567.0, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "1.234567e+06 33") == 0);
+ ASSERT (strcmp (result, "1.234567e+06 33") == 0
+ || strcmp (result, "1.234567e+006 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
size_t length;
char *result =
my_asnprintf (NULL, &length, "%e", data[k].value);
+ const char *expected = data[k].string;
ASSERT (result != NULL);
- ASSERT (strmatch (data[k].string, result));
+ ASSERT (strcmp (result, expected) == 0
+ /* Some implementations produce exponents with 3 digits. */
+ || (strlen (result) == strlen (expected) + 1
+ && memcmp (result, expected, strlen (expected) - 2) == 0
+ && result[strlen (expected) - 2] == '0'
+ && strcmp (result + strlen (expected) - 1,
+ expected + strlen (expected) - 2)
+ == 0));
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%e %d", -0.03125, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "-3.125000e-02 33") == 0);
+ ASSERT (strcmp (result, "-3.125000e-02 33") == 0
+ || strcmp (result, "-3.125000e-002 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%e %d", 0.0, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "0.000000e+00 33") == 0);
+ ASSERT (strcmp (result, "0.000000e+00 33") == 0
+ || strcmp (result, "0.000000e+000 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%e %d", -0.0, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "-0.000000e+00 33") == 0);
+ ASSERT (strcmp (result, "-0.000000e+00 33") == 0
+ || strcmp (result, "-0.000000e+000 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%15e %d", 1.75, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, " 1.750000e+00 33") == 0);
+ ASSERT (strcmp (result, " 1.750000e+00 33") == 0
+ || strcmp (result, " 1.750000e+000 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%-15e %d", 1.75, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "1.750000e+00 33") == 0);
+ ASSERT (strcmp (result, "1.750000e+00 33") == 0
+ || strcmp (result, "1.750000e+000 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%+e %d", 1.75, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "+1.750000e+00 33") == 0);
+ ASSERT (strcmp (result, "+1.750000e+00 33") == 0
+ || strcmp (result, "+1.750000e+000 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "% e %d", 1.75, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, " 1.750000e+00 33") == 0);
+ ASSERT (strcmp (result, " 1.750000e+00 33") == 0
+ || strcmp (result, " 1.750000e+000 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%#e %d", 1.75, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "1.750000e+00 33") == 0);
+ ASSERT (strcmp (result, "1.750000e+00 33") == 0
+ || strcmp (result, "1.750000e+000 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%#.e %d", 1.75, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "2.e+00 33") == 0);
+ ASSERT (strcmp (result, "2.e+00 33") == 0
+ || strcmp (result, "2.e+000 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%#.e %d", 9.75, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "1.e+01 33") == 0);
+ ASSERT (strcmp (result, "1.e+01 33") == 0
+ || strcmp (result, "1.e+001 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%015e %d", 1234.0, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "0001.234000e+03 33") == 0);
+ ASSERT (strcmp (result, "0001.234000e+03 33") == 0
+ || strcmp (result, "001.234000e+003 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%.e %d", 1234.0, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "1e+03 33") == 0);
+ ASSERT (strcmp (result, "1e+03 33") == 0
+ || strcmp (result, "1e+003 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%Le", data[k].value);
ASSERT (result != NULL);
- ASSERT (strmatch (data[k].string, result));
+ ASSERT (strcmp (result, data[k].string) == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%g %d", 1234567.0, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "1.23457e+06 33") == 0);
+ ASSERT (strcmp (result, "1.23457e+06 33") == 0
+ || strcmp (result, "1.23457e+006 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
size_t length;
char *result =
my_asnprintf (NULL, &length, "%g", data[k].value);
+ const char *expected = data[k].string;
ASSERT (result != NULL);
- ASSERT (strmatch (data[k].string, result));
+ ASSERT (strcmp (result, expected) == 0
+ /* Some implementations produce exponents with 3 digits. */
+ || (expected[strlen (expected) - 4] == 'e'
+ && strlen (result) == strlen (expected) + 1
+ && memcmp (result, expected, strlen (expected) - 2) == 0
+ && result[strlen (expected) - 2] == '0'
+ && strcmp (result + strlen (expected) - 1,
+ expected + strlen (expected) - 2)
+ == 0));
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%#.g %d", 9.75, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "1.e+01 33") == 0);
+ ASSERT (strcmp (result, "1.e+01 33") == 0
+ || strcmp (result, "1.e+001 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%.g %d", 1234.0, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "1e+03 33") == 0);
+ ASSERT (strcmp (result, "1e+03 33") == 0
+ || strcmp (result, "1e+003 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%Lg", data[k].value);
ASSERT (result != NULL);
- ASSERT (strmatch (data[k].string, result));
+ ASSERT (strcmp (result, data[k].string) == 0);
ASSERT (length == strlen (result));
free (result);
}