aboutsummaryrefslogtreecommitdiff
path: root/tests/ft_numbers/ft_numbers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ft_numbers/ft_numbers.cpp')
-rw-r--r--tests/ft_numbers/ft_numbers.cpp167
1 files changed, 159 insertions, 8 deletions
diff --git a/tests/ft_numbers/ft_numbers.cpp b/tests/ft_numbers/ft_numbers.cpp
index d0487252..9a286f40 100644
--- a/tests/ft_numbers/ft_numbers.cpp
+++ b/tests/ft_numbers/ft_numbers.cpp
@@ -1192,6 +1192,157 @@ void Ft_Numbers::testToDouble_data()
<< true
<< double(1234567.1234567)
<< QString("1,234,567.1234567");
+ QTest::newRow("en_GB f4")
+ << QString("en_GB")
+ << QString("f4")
+ << false
+ << double(0)
+ << QString("0");
+
+ QTest::newRow("en_GB 4f")
+ << QString("en_GB")
+ << QString("4f")
+ << false
+ << double(0)
+ << QString("0");
+
+ QTest::newRow("en_GB 1E+9")
+ << QString("en_GB")
+ << QString("1E+9")
+ << true
+ << double(1.0E+9)
+ << QString("1,000,000,000");
+
+ if (icuPackageVersion < "4.4.2-0maemo3") {
+ qDebug() << "NB#206085 not yet fixed, some exponents parsed wrong.";
+ QTest::newRow("en_GB 1E+10")
+ << QString("en_GB")
+ << QString("1E+10")
+ << true
+ << double(0)
+ << QString("0");
+ }
+ else {
+ qDebug() << "NB#206085 fixed, exponent parsing corrected.";
+ QTest::newRow("en_GB 1E+10")
+ << QString("en_GB")
+ << QString("1E+10")
+ << true
+ << double(1.0E+10)
+ << QString("10,000,000,000");
+
+ QTest::newRow("en_GB 1E+10")
+ << QString("en_GB")
+ << QString("1E+10")
+ << true // exponential symbol is case insensitive now.
+ << double(1E+10)
+ << QString("10,000,000,000");
+
+ QTest::newRow("en_GB 1e+10")
+ << QString("en_GB")
+ << QString("1e+10")
+ << true // exponential symbol is case insensitive now.
+ << double(1e+10)
+ << QString("10,000,000,000");
+
+ QTest::newRow("el_GR 1E+10")
+ << QString("el_GR")
+ << QString("1E+10")
+ << true // exponential symbol is case insensitive now.
+ << double(1e+10)
+ << QString("10.000.000.000");
+
+ QTest::newRow("el_GR 1e+10")
+ << QString("el_GR")
+ << QString("1e+10")
+ << true // exponential symbol is case insensitive now.
+ << double(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?
+ << double(0)
+ << QString("0");
+
+ QTest::newRow("sv_SE 1e+10")
+ << QString("sv_SE")
+ << QString("1e+10")
+ << false // OK not to parse this in Swedish?
+ << double(0)
+ << QString("0");
+
+ QTest::newRow("sv_SE 1×10^10")
+ << QString("sv_SE")
+ << QString("1×10^10")
+ << true
+ << double(1E+10)
+ << QString("10 000 000 000");
+
+ QTest::newRow("ar_SA ١اس+١٠") // ar_SA does not use thousands separators
+ << QString("ar_SA")
+ << QString("١اس+١٠")
+ << true
+ << double(1E+10)
+ << QString("١٠٠٠٠٠٠٠٠٠٠");
+
+ QTest::newRow("ar_SA ١٠٠٠") // ar_SA does not use thousands separators
+ << QString("ar_SA")
+ << QString("١٠٠٠")
+ << true
+ << double(1000.0)
+ << QString("١٠٠٠");
+
+ QTest::newRow("ar_SA ١٬٠٠٠") // ar_SA does not use thousands separators
+ << QString("ar_SA")
+ << QString("١٬٠٠٠")
+ << false
+ << double(0.0)
+ << QString("٠");
+
+ QTest::newRow("ar_EG ١اس+١٠") // ar_EG does not use thousands separators
+ << QString("ar_EG")
+ << QString("١اس+١٠")
+ << true
+ << double(1E+10)
+ << QString("١٠٬٠٠٠٬٠٠٠٬٠٠٠");
+
+ QTest::newRow("ar_EG ١٠٠٠") // ar_EG does not use thousands separators
+ << QString("ar_EG")
+ << QString("١٠٠٠")
+ << true
+ << double(1000.0)
+ << QString("١٬٠٠٠");
+
+ QTest::newRow("ar_EG ١٬٠٠٠") // ar_EG does not use thousands separators
+ << QString("ar_EG")
+ << QString("١٬٠٠٠")
+ << true
+ << double(1000.0)
+ << QString("١٬٠٠٠");
+
+ QTest::newRow("fa_IR ١×۱۰^١۰")
+ << QString("fa_IR")
+ << QString("۱×۱۰^۱۰")
+ << true
+ << double(1E+10)
+ << QString("۱۰٬۰۰۰٬۰۰۰٬۰۰۰");
+
+ QTest::newRow("fa_IR ۱۰۰۰")
+ << QString("fa_IR")
+ << QString("۱۰۰۰")
+ << true
+ << double(1000.0)
+ << QString("۱٬۰۰۰");
+
+ QTest::newRow("fa_IR ۱٬۰۰۰")
+ << QString("fa_IR")
+ << QString("۱٬۰۰۰")
+ << true
+ << double(1000.0)
+ << QString("۱٬۰۰۰");
+ }
QTest::newRow("de_DE 1234.56")
<< QString("de_DE")
@@ -1652,28 +1803,28 @@ void Ft_Numbers::testToFloat_data()
QTest::newRow("en_GB 1E+10")
<< QString("en_GB")
<< QString("1E+10")
- << true // should this really be case sensitive??
+ << true // exponential symbol is case insensitive now.
<< 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");
+ << true // exponential symbol is case insensitive now.
+ << float(1e+10)
+ << QString("10,000,000,000");
QTest::newRow("el_GR 1E+10")
<< QString("el_GR")
<< QString("1E+10")
- << false // should this really be case sensitive??
- << float(0)
- << QString("0");
+ << true // exponential symbol is case insensitive now.
+ << float(1e+10)
+ << QString("10.000.000.000");
QTest::newRow("el_GR 1e+10")
<< QString("el_GR")
<< QString("1e+10")
- << true // should this really be case sensitive??
+ << true // exponential symbol is case insensitive now.
<< float(1E+10)
<< QString("10.000.000.000");