diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp | 20 | ||||
-rw-r--r-- | tests/auto/corelib/time/qtime/tst_qtime.cpp | 14 |
2 files changed, 30 insertions, 4 deletions
diff --git a/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp b/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp index 18b7a9d74f..2e2b5fbf24 100644 --- a/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp +++ b/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp @@ -2202,6 +2202,15 @@ void tst_QDateTime::fromStringDateFormat_data() << Qt::TextDate << QDateTime(); QTest::newRow("text second fraction") << QString::fromLatin1("Mon 6. May 2013 01:02:03.456") << Qt::TextDate << QDateTime(QDate(2013, 5, 6), QTime(1, 2, 3, 456)); + QTest::newRow("text max milli") + << QString::fromLatin1("Mon 6. May 2013 01:02:03.999499999") + << Qt::TextDate << QDateTime(QDate(2013, 5, 6), QTime(1, 2, 3, 999)); + QTest::newRow("text milli wrap") + << QString::fromLatin1("Mon 6. May 2013 01:02:03.9995") + << Qt::TextDate << QDateTime(QDate(2013, 5, 6), QTime(1, 2, 4)); + QTest::newRow("text last milli") // Special case, don't round up to invalid: + << QString::fromLatin1("Mon 6. May 2013 23:59:59.9999999999") + << Qt::TextDate << QDateTime(QDate(2013, 5, 6), QTime(23, 59, 59, 999)); const QDateTime ref(QDate(1974, 12, 1), QTime(13, 2)); QTest::newRow("day:,:month") @@ -2331,6 +2340,17 @@ void tst_QDateTime::fromStringDateFormat_data() << Qt::ISODate << QDateTime(QDate(2012, 1, 1), QTime(8, 0, 0, 333), Qt::LocalTime); QTest::newRow("ISO .00009 of a second (period)") << QString::fromLatin1("2012-01-01T08:00:00.00009") << Qt::ISODate << QDateTime(QDate(2012, 1, 1), QTime(8, 0, 0, 0), Qt::LocalTime); + QTest::newRow("ISO second fraction") << QString::fromLatin1("2013-05-06T01:02:03.456") + << Qt::ISODate << QDateTime(QDate(2013, 5, 6), QTime(1, 2, 3, 456)); + QTest::newRow("ISO max milli") + << QString::fromLatin1("2013-05-06T01:02:03.999499999") + << Qt::ISODate << QDateTime(QDate(2013, 5, 6), QTime(1, 2, 3, 999)); + QTest::newRow("ISO milli wrap") + << QString::fromLatin1("2013-05-06T01:02:03.9995") + << Qt::ISODate << QDateTime(QDate(2013, 5, 6), QTime(1, 2, 4)); + QTest::newRow("ISO last milli") // Does round up and overflow into new day: + << QString::fromLatin1("2013-05-06T23:59:59.9999999999") + << Qt::ISODate << QDate(2013, 5, 7).startOfDay(); QTest::newRow("ISO no fraction specified") << QString::fromLatin1("2012-01-01T08:00:00.") << Qt::ISODate << QDateTime(); // Test invalid characters (should ignore invalid characters at end of string). diff --git a/tests/auto/corelib/time/qtime/tst_qtime.cpp b/tests/auto/corelib/time/qtime/tst_qtime.cpp index b79cb609e7..ce8a24515b 100644 --- a/tests/auto/corelib/time/qtime/tst_qtime.cpp +++ b/tests/auto/corelib/time/qtime/tst_qtime.cpp @@ -588,10 +588,12 @@ void tst_QTime::fromStringDateFormat_data() << QString("10:12:34") << Qt::TextDate << QTime(10, 12, 34); QTest::newRow("TextDate - milli-max") << QString("19:03:54.998601") << Qt::TextDate << QTime(19, 3, 54, 999); - QTest::newRow("TextDate - milli-no-overflow") - << QString("19:03:54.999601") << Qt::TextDate << QTime(19, 3, 54, 999); + QTest::newRow("TextDate - milli-wrap") + << QString("19:03:54.999601") << Qt::TextDate << QTime(19, 3, 55); QTest::newRow("TextDate - no-secs") << QString("10:12") << Qt::TextDate << QTime(10, 12); + QTest::newRow("TextDate - midnight-nowrap") + << QString("23:59:59.9999") << Qt::TextDate << QTime(23, 59, 59, 999); QTest::newRow("TextDate - invalid, minutes") << QString::fromLatin1("23:XX:00") << Qt::TextDate << invalidTime(); QTest::newRow("TextDate - invalid, minute fraction") << QString::fromLatin1("23:00.123456") << Qt::TextDate << invalidTime(); QTest::newRow("TextDate - invalid, seconds") << QString::fromLatin1("23:00:XX") << Qt::TextDate << invalidTime(); @@ -601,6 +603,8 @@ void tst_QTime::fromStringDateFormat_data() QTest::newRow("IsoDate - valid, start of day, omit seconds") << QString::fromLatin1("00:00") << Qt::ISODate << QTime(0, 0, 0); QTest::newRow("IsoDate - valid, omit seconds") << QString::fromLatin1("22:21") << Qt::ISODate << QTime(22, 21, 0); + QTest::newRow("IsoDate - minute fraction") // 60 * 0.816666 = 48.99996 should round up: + << QString::fromLatin1("22:21.816666") << Qt::ISODate << QTime(22, 21, 49); QTest::newRow("IsoDate - valid, omit seconds (2)") << QString::fromLatin1("23:59") << Qt::ISODate << QTime(23, 59, 0); QTest::newRow("IsoDate - valid, end of day") << QString::fromLatin1("23:59:59") << Qt::ISODate << QTime(23, 59, 59); @@ -619,8 +623,10 @@ void tst_QTime::fromStringDateFormat_data() QTest::newRow("IsoDate - ordinary") << QString("10:12:34") << Qt::ISODate << QTime(10, 12, 34); QTest::newRow("IsoDate - milli-max") << QString("19:03:54.998601") << Qt::ISODate << QTime(19, 3, 54, 999); - QTest::newRow("IsoDate - milli-no-overflow") - << QString("19:03:54.999601") << Qt::ISODate << QTime(19, 3, 54, 999); + QTest::newRow("IsoDate - milli-wrap") + << QString("19:03:54.999601") << Qt::ISODate << QTime(19, 3, 55); + QTest::newRow("IsoDate - midnight-nowrap") + << QString("23:59:59.9999") << Qt::ISODate << QTime(23, 59, 59, 999); QTest::newRow("IsoDate - midnight 24") << QString("24:00:00") << Qt::ISODate << QTime(0, 0); QTest::newRow("IsoDate - minute fraction midnight") |