QLocale: add unittests for qstrtod of "NaN" and "nan"
The tests pass. Drive-by change: Amend qstrntod API docs, the addition is heavily inspired by cppreference's strtod docs. Change-Id: Ic8e138e117a3249c752ae5ef2a8a21feb010befa Task-number: QTBUG-74325 Pick-to: 6.5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
d079ca3429
commit
a67e7e3bb7
@ -552,7 +552,9 @@ QString qulltoa(qulonglong number, int base, const QStringView zero)
|
|||||||
/*!
|
/*!
|
||||||
\internal
|
\internal
|
||||||
|
|
||||||
Converts the initial portion of the string pointed to by \a s00 to a double, using the 'C' locale.
|
Converts the initial portion of the string pointed to by \a s00 to a double,
|
||||||
|
using the 'C' locale. The function sets the pointer pointed to by \a se to
|
||||||
|
point to the character past the last character converted.
|
||||||
*/
|
*/
|
||||||
double qstrntod(const char *s00, qsizetype len, const char **se, bool *ok)
|
double qstrntod(const char *s00, qsizetype len, const char **se, bool *ok)
|
||||||
{
|
{
|
||||||
|
@ -1322,6 +1322,10 @@ void tst_QLocale::strtod_data()
|
|||||||
QTest::newRow("1e2000 cruft") << QString("1e2000 cruft") << qInf() << 6 << false;
|
QTest::newRow("1e2000 cruft") << QString("1e2000 cruft") << qInf() << 6 << false;
|
||||||
QTest::newRow("-1e2000 cruft") << QString("-1e2000 cruft") << -qInf() << 7 << false;
|
QTest::newRow("-1e2000 cruft") << QString("-1e2000 cruft") << -qInf() << 7 << false;
|
||||||
|
|
||||||
|
// NaN and nan
|
||||||
|
QTest::newRow("NaN") << QString("NaN") << qQNaN() << 3 << true;
|
||||||
|
QTest::newRow("nan") << QString("nan") << qQNaN() << 3 << true;
|
||||||
|
|
||||||
// Underflow, ends with cruft - fails but reports right length:
|
// Underflow, ends with cruft - fails but reports right length:
|
||||||
QTest::newRow("1e-2000 cruft") << QString("1e-2000 cruft") << 0.0 << 7 << false;
|
QTest::newRow("1e-2000 cruft") << QString("1e-2000 cruft") << 0.0 << 7 << false;
|
||||||
QTest::newRow("-1e-2000 cruft") << QString("-1e-2000 cruft") << 0.0 << 8 << false;
|
QTest::newRow("-1e-2000 cruft") << QString("-1e-2000 cruft") << 0.0 << 8 << false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user