diff options
author | Mike FABIAN <mike.fabian@basyskom.de> | 2010-12-06 15:00:50 +0100 |
---|---|---|
committer | Mike FABIAN <mike.fabian@basyskom.de> | 2010-12-06 15:40:05 +0100 |
commit | 3f1fc12f12306bdff91c77dc28420c7a8469612c (patch) | |
tree | c664fcc1aaf609e1fcffa3cd0776dc90366b18c0 | |
parent | 2ac306b38d07cea5c6ea3f5a0b7bb8de1349297e (diff) |
Changes: add more tests for parsing exponential numbers
RevBy: John Tapsell, Björn Schnabel
Details:
For NB#206085.
-rw-r--r-- | tests/ft_numbers/ft_numbers.cpp | 144 |
1 files changed, 143 insertions, 1 deletions
diff --git a/tests/ft_numbers/ft_numbers.cpp b/tests/ft_numbers/ft_numbers.cpp index 1d70dc17..d0487252 100644 --- a/tests/ft_numbers/ft_numbers.cpp +++ b/tests/ft_numbers/ft_numbers.cpp @@ -271,12 +271,30 @@ void Ft_Numbers::testToLongLong_data() << false << qlonglong(0) << QString("0"); - QTest::newRow("ar_SA ١٢٣٤") + QTest::newRow("ar_SA ١٢٣٤") // ar_SA does not use thousands separators << QString("ar_SA") << QString("١٢٣٤") << true << qlonglong(1234) << QString("١٢٣٤"); + QTest::newRow("ar_EG ١٢٣٤") // ar_EG uses thousands separators + << QString("ar_EG") + << QString("١٢٣٤") + << true + << qlonglong(1234) + << QString("١٬٢٣٤"); + QTest::newRow("ar_EG ١٬٢٣٤") // ar_EG uses thousands separators + << QString("ar_EG") + << QString("١٬٢٣٤") + << true + << qlonglong(1234) + << QString("١٬٢٣٤"); + QTest::newRow("fa_IR ۱٬۰۰۰") + << QString("fa_IR") + << QString("۱٬۰۰۰") + << true + << qlonglong(1000) + << QString("۱٬۰۰۰"); QTest::newRow("ar_SA ١٢٣٤٫١٢٣") << QString("ar_SA") << QString("١٢٣٤٫١٢٣") @@ -1630,6 +1648,118 @@ void Ft_Numbers::testToFloat_data() << true << float(1.0E+10) << QString("10,000,000,000"); + + QTest::newRow("en_GB 1E+10") + << QString("en_GB") + << QString("1E+10") + << true // should this really be case sensitive?? + << float(1E+10) + << QString("10,000,000,000"); + + QTest::newRow("en_GB 1e+10") + << QString("en_GB") + << QString("1e+10") + << false // should this really be case sensitive?? + << float(0) + << QString("0"); + + QTest::newRow("el_GR 1E+10") + << QString("el_GR") + << QString("1E+10") + << false // should this really be case sensitive?? + << float(0) + << QString("0"); + + QTest::newRow("el_GR 1e+10") + << QString("el_GR") + << QString("1e+10") + << true // should this really be case sensitive?? + << float(1E+10) + << QString("10.000.000.000"); + + QTest::newRow("sv_SE 1E+10") + << QString("sv_SE") + << QString("1E+10") + << false // OK not to parse this in Swedish? + << float(0) + << QString("0"); + + QTest::newRow("sv_SE 1e+10") + << QString("sv_SE") + << QString("1e+10") + << false // OK not to parse this in Swedish? + << float(0) + << QString("0"); + + QTest::newRow("sv_SE 1×10^10") + << QString("sv_SE") + << QString("1×10^10") + << true + << float(1E+10) + << QString("10 000 000 000"); + + QTest::newRow("ar_SA ١اس+١٠") // ar_SA does not use thousands separators + << QString("ar_SA") + << QString("١اس+١٠") + << true + << float(1E+10) + << QString("١٠٠٠٠٠٠٠٠٠٠"); + + QTest::newRow("ar_SA ١٠٠٠") // ar_SA does not use thousands separators + << QString("ar_SA") + << QString("١٠٠٠") + << true + << float(1000.0) + << QString("١٠٠٠"); + + QTest::newRow("ar_SA ١٬٠٠٠") // ar_SA does not use thousands separators + << QString("ar_SA") + << QString("١٬٠٠٠") + << false + << float(0.0) + << QString("٠"); + + QTest::newRow("ar_EG ١اس+١٠") // ar_EG does not use thousands separators + << QString("ar_EG") + << QString("١اس+١٠") + << true + << float(1E+10) + << QString("١٠٬٠٠٠٬٠٠٠٬٠٠٠"); + + QTest::newRow("ar_EG ١٠٠٠") // ar_EG does not use thousands separators + << QString("ar_EG") + << QString("١٠٠٠") + << true + << float(1000.0) + << QString("١٬٠٠٠"); + + QTest::newRow("ar_EG ١٬٠٠٠") // ar_EG does not use thousands separators + << QString("ar_EG") + << QString("١٬٠٠٠") + << true + << float(1000.0) + << QString("١٬٠٠٠"); + + QTest::newRow("fa_IR ١×۱۰^١۰") + << QString("fa_IR") + << QString("۱×۱۰^۱۰") + << true + << float(1E+10) + << QString("۱۰٬۰۰۰٬۰۰۰٬۰۰۰"); + + QTest::newRow("fa_IR ۱۰۰۰") + << QString("fa_IR") + << QString("۱۰۰۰") + << true + << float(1000.0) + << QString("۱٬۰۰۰"); + + QTest::newRow("fa_IR ۱٬۰۰۰") + << QString("fa_IR") + << QString("۱٬۰۰۰") + << true + << float(1000.0) + << QString("۱٬۰۰۰"); } QTest::newRow("en_GB 1E+38") @@ -1732,6 +1862,18 @@ void Ft_Numbers::testToFloat() MLocale locale(localeName); float result = locale.toFloat(formattedFloat); +#if 0 + QTextStream stream(stdout); + stream.setCodec("UTF-8"); + stream << localeName + << " formattedFloat: " << formattedFloat + << " parsable: " << parsable + << " result: " << result + << " parsedFloat: " << parsedFloat + << " locale.formatNumber(result): " << locale.formatNumber(result) + << " formattedAgainFloat" << formattedAgainFloat + << "\n"; +#endif QCOMPARE(result, parsedFloat); QCOMPARE(locale.toFloat(formattedFloat, NULL), parsedFloat); bool ok; |