summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools/qchar/tst_qchar.cpp
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2012-06-09 21:22:24 +0300
committerQt by Nokia <qt-info@nokia.com>2012-06-10 15:57:57 +0200
commitf32a7f1e21570b44e9602058454359cd196676e4 (patch)
treebf7491f746c2ccdf38b265dc3bfbc1074f563a14 /tests/auto/corelib/tools/qchar/tst_qchar.cpp
parentc9100bcce7229fb115caf8531de6d89eaeb00706 (diff)
Update the Unicode related autotests
Update NormalizationTest.txt data file with one from UCD 6.1; Add few more QChar::unicodeVersion() testcases; Add some line break class mapping testcases; Add some exceptional case mapping testcases; Add script class mapping test; Change-Id: I164394984abb2b893c8db62fb77e7bd87aa0850b Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'tests/auto/corelib/tools/qchar/tst_qchar.cpp')
-rw-r--r--tests/auto/corelib/tools/qchar/tst_qchar.cpp92
1 files changed, 77 insertions, 15 deletions
diff --git a/tests/auto/corelib/tools/qchar/tst_qchar.cpp b/tests/auto/corelib/tools/qchar/tst_qchar.cpp
index 18b816fa49..1a9d10a003 100644
--- a/tests/auto/corelib/tools/qchar/tst_qchar.cpp
+++ b/tests/auto/corelib/tools/qchar/tst_qchar.cpp
@@ -80,6 +80,7 @@ private slots:
void mirroredChar();
void decomposition();
void lineBreakClass();
+ void script();
void normalization_data();
void normalization();
void normalization_manual();
@@ -113,23 +114,28 @@ void tst_QChar::toUpper()
QVERIFY(QChar((ushort)0x1c7).toUpper().unicode() == 0x1c7);
QVERIFY(QChar((ushort)0x1c8).toUpper().unicode() == 0x1c7);
QVERIFY(QChar((ushort)0x1c9).toUpper().unicode() == 0x1c7);
+ QVERIFY(QChar((ushort)0x1d79).toUpper().unicode() == 0xa77d);
+ QVERIFY(QChar((ushort)0x0265).toUpper().unicode() == 0xa78d);
QVERIFY(QChar::toUpper((ushort)'a') == 'A');
QVERIFY(QChar::toUpper((ushort)'A') == 'A');
QVERIFY(QChar::toUpper((ushort)0x1c7) == 0x1c7);
QVERIFY(QChar::toUpper((ushort)0x1c8) == 0x1c7);
QVERIFY(QChar::toUpper((ushort)0x1c9) == 0x1c7);
+ QVERIFY(QChar::toUpper((ushort)0x1d79) == 0xa77d);
+ QVERIFY(QChar::toUpper((ushort)0x0265) == 0xa78d);
QVERIFY(QChar::toUpper((uint)'a') == 'A');
QVERIFY(QChar::toUpper((uint)'A') == 'A');
+ QVERIFY(QChar::toUpper((uint)0xdf) == 0xdf); // german sharp s
QVERIFY(QChar::toUpper((uint)0x1c7) == 0x1c7);
QVERIFY(QChar::toUpper((uint)0x1c8) == 0x1c7);
QVERIFY(QChar::toUpper((uint)0x1c9) == 0x1c7);
+ QVERIFY(QChar::toUpper((uint)0x1d79) == 0xa77d);
+ QVERIFY(QChar::toUpper((uint)0x0265) == 0xa78d);
QVERIFY(QChar::toUpper((uint)0x10400) == 0x10400);
QVERIFY(QChar::toUpper((uint)0x10428) == 0x10400);
-
- QVERIFY(QChar::toUpper((uint)0xdf) == 0xdf); // german sharp s
}
void tst_QChar::toLower()
@@ -139,18 +145,24 @@ void tst_QChar::toLower()
QVERIFY(QChar((ushort)0x1c7).toLower().unicode() == 0x1c9);
QVERIFY(QChar((ushort)0x1c8).toLower().unicode() == 0x1c9);
QVERIFY(QChar((ushort)0x1c9).toLower().unicode() == 0x1c9);
+ QVERIFY(QChar((ushort)0xa77d).toLower().unicode() == 0x1d79);
+ QVERIFY(QChar((ushort)0xa78d).toLower().unicode() == 0x0265);
QVERIFY(QChar::toLower((ushort)'a') == 'a');
QVERIFY(QChar::toLower((ushort)'A') == 'a');
QVERIFY(QChar::toLower((ushort)0x1c7) == 0x1c9);
QVERIFY(QChar::toLower((ushort)0x1c8) == 0x1c9);
QVERIFY(QChar::toLower((ushort)0x1c9) == 0x1c9);
+ QVERIFY(QChar::toLower((ushort)0xa77d) == 0x1d79);
+ QVERIFY(QChar::toLower((ushort)0xa78d) == 0x0265);
QVERIFY(QChar::toLower((uint)'a') == 'a');
QVERIFY(QChar::toLower((uint)'A') == 'a');
QVERIFY(QChar::toLower((uint)0x1c7) == 0x1c9);
QVERIFY(QChar::toLower((uint)0x1c8) == 0x1c9);
QVERIFY(QChar::toLower((uint)0x1c9) == 0x1c9);
+ QVERIFY(QChar::toLower((uint)0xa77d) == 0x1d79);
+ QVERIFY(QChar::toLower((uint)0xa78d) == 0x0265);
QVERIFY(QChar::toLower((uint)0x10400) == 0x10428);
QVERIFY(QChar::toLower((uint)0x10428) == 0x10428);
@@ -163,23 +175,28 @@ void tst_QChar::toTitle()
QVERIFY(QChar((ushort)0x1c7).toTitleCase().unicode() == 0x1c8);
QVERIFY(QChar((ushort)0x1c8).toTitleCase().unicode() == 0x1c8);
QVERIFY(QChar((ushort)0x1c9).toTitleCase().unicode() == 0x1c8);
+ QVERIFY(QChar((ushort)0x1d79).toTitleCase().unicode() == 0xa77d);
+ QVERIFY(QChar((ushort)0x0265).toTitleCase().unicode() == 0xa78d);
QVERIFY(QChar::toTitleCase((ushort)'a') == 'A');
QVERIFY(QChar::toTitleCase((ushort)'A') == 'A');
QVERIFY(QChar::toTitleCase((ushort)0x1c7) == 0x1c8);
QVERIFY(QChar::toTitleCase((ushort)0x1c8) == 0x1c8);
QVERIFY(QChar::toTitleCase((ushort)0x1c9) == 0x1c8);
+ QVERIFY(QChar::toTitleCase((ushort)0x1d79) == 0xa77d);
+ QVERIFY(QChar::toTitleCase((ushort)0x0265) == 0xa78d);
QVERIFY(QChar::toTitleCase((uint)'a') == 'A');
QVERIFY(QChar::toTitleCase((uint)'A') == 'A');
+ QVERIFY(QChar::toTitleCase((uint)0xdf) == 0xdf); // german sharp s
QVERIFY(QChar::toTitleCase((uint)0x1c7) == 0x1c8);
QVERIFY(QChar::toTitleCase((uint)0x1c8) == 0x1c8);
QVERIFY(QChar::toTitleCase((uint)0x1c9) == 0x1c8);
+ QVERIFY(QChar::toTitleCase((uint)0x1d79) == 0xa77d);
+ QVERIFY(QChar::toTitleCase((uint)0x0265) == 0xa78d);
QVERIFY(QChar::toTitleCase((uint)0x10400) == 0x10400);
QVERIFY(QChar::toTitleCase((uint)0x10428) == 0x10400);
-
- QVERIFY(QChar::toTitleCase((uint)0xdf) == 0xdf); // german sharp s
}
void tst_QChar::toCaseFolded()
@@ -189,18 +206,24 @@ void tst_QChar::toCaseFolded()
QVERIFY(QChar((ushort)0x1c7).toCaseFolded().unicode() == 0x1c9);
QVERIFY(QChar((ushort)0x1c8).toCaseFolded().unicode() == 0x1c9);
QVERIFY(QChar((ushort)0x1c9).toCaseFolded().unicode() == 0x1c9);
+ QVERIFY(QChar((ushort)0xa77d).toCaseFolded().unicode() == 0x1d79);
+ QVERIFY(QChar((ushort)0xa78d).toCaseFolded().unicode() == 0x0265);
QVERIFY(QChar::toCaseFolded((ushort)'a') == 'a');
QVERIFY(QChar::toCaseFolded((ushort)'A') == 'a');
QVERIFY(QChar::toCaseFolded((ushort)0x1c7) == 0x1c9);
QVERIFY(QChar::toCaseFolded((ushort)0x1c8) == 0x1c9);
QVERIFY(QChar::toCaseFolded((ushort)0x1c9) == 0x1c9);
+ QVERIFY(QChar::toCaseFolded((ushort)0xa77d) == 0x1d79);
+ QVERIFY(QChar::toCaseFolded((ushort)0xa78d) == 0x0265);
QVERIFY(QChar::toCaseFolded((uint)'a') == 'a');
QVERIFY(QChar::toCaseFolded((uint)'A') == 'a');
QVERIFY(QChar::toCaseFolded((uint)0x1c7) == 0x1c9);
QVERIFY(QChar::toCaseFolded((uint)0x1c8) == 0x1c9);
QVERIFY(QChar::toCaseFolded((uint)0x1c9) == 0x1c9);
+ QVERIFY(QChar::toCaseFolded((uint)0xa77d) == 0x1d79);
+ QVERIFY(QChar::toCaseFolded((uint)0xa78d) == 0x0265);
QVERIFY(QChar::toCaseFolded((uint)0x10400) == 0x10428);
QVERIFY(QChar::toCaseFolded((uint)0x10428) == 0x10428);
@@ -321,14 +344,14 @@ void tst_QChar::isPrint()
QVERIFY(QChar('A').isPrint());
QVERIFY(QChar('a').isPrint());
- QVERIFY(!QChar(0x0370).isPrint()); // assigned in 5.1
- QVERIFY(!QChar(0x0524).isPrint()); // assigned in 5.2
- QVERIFY(!QChar(0x0526).isPrint()); // assigned in 6.0
- QVERIFY(!QChar(0x08a0).isPrint()); // assigned in 6.1
+ QVERIFY(QChar(0x0370).isPrint()); // assigned in 5.1
+ QVERIFY(QChar(0x0524).isPrint()); // assigned in 5.2
+ QVERIFY(QChar(0x0526).isPrint()); // assigned in 6.0
+ QVERIFY(QChar(0x08a0).isPrint()); // assigned in 6.1
QVERIFY(!QChar(0x1aff).isPrint()); // not assigned
- QVERIFY(!QChar(0x1e9e).isPrint()); // assigned in 5.1
- QVERIFY(!QChar::isPrint(0x1b000u)); // assigned in 6.0
- QVERIFY(!QChar::isPrint(0x110d0u)); // assigned in 5.1
+ QVERIFY(QChar(0x1e9e).isPrint()); // assigned in 5.1
+ QVERIFY(QChar::isPrint(0x1b000u)); // assigned in 6.0
+ QVERIFY(QChar::isPrint(0x110d0u)); // assigned in 5.1
}
void tst_QChar::isUpper()
@@ -557,8 +580,31 @@ void tst_QChar::unicodeVersion()
QVERIFY(QChar::unicodeVersion((uint)0x0242) == QChar::Unicode_5_0);
QVERIFY(QChar::unicodeVersion((uint)0x12000) == QChar::Unicode_5_0);
-}
+ QVERIFY(QChar(0x0370).unicodeVersion() == QChar::Unicode_5_1);
+ QVERIFY(QChar::unicodeVersion((ushort)0x0370) == QChar::Unicode_5_1);
+ QVERIFY(QChar::unicodeVersion((uint)0x0370) == QChar::Unicode_5_1);
+ QVERIFY(QChar::unicodeVersion((uint)0x1f093) == QChar::Unicode_5_1);
+
+ QVERIFY(QChar(0x0524).unicodeVersion() == QChar::Unicode_5_2);
+ QVERIFY(QChar::unicodeVersion((ushort)0x0524) == QChar::Unicode_5_2);
+ QVERIFY(QChar::unicodeVersion((uint)0x0524) == QChar::Unicode_5_2);
+ QVERIFY(QChar::unicodeVersion((uint)0x2b734) == QChar::Unicode_5_2);
+ QVERIFY(QChar(0x26ce).unicodeVersion() == QChar::Unicode_6_0);
+ QVERIFY(QChar::unicodeVersion((ushort)0x26ce) == QChar::Unicode_6_0);
+ QVERIFY(QChar::unicodeVersion((uint)0x26ce) == QChar::Unicode_6_0);
+ QVERIFY(QChar::unicodeVersion((uint)0x1f618) == QChar::Unicode_6_0);
+
+ QVERIFY(QChar(0xa69f).unicodeVersion() == QChar::Unicode_6_1);
+ QVERIFY(QChar::unicodeVersion((ushort)0xa69f) == QChar::Unicode_6_1);
+ QVERIFY(QChar::unicodeVersion((uint)0xa69f) == QChar::Unicode_6_1);
+ QVERIFY(QChar::unicodeVersion((uint)0x1f600) == QChar::Unicode_6_1);
+
+ QVERIFY(QChar(0x09ff).unicodeVersion() == QChar::Unicode_Unassigned);
+ QVERIFY(QChar::unicodeVersion((ushort)0x09ff) == QChar::Unicode_Unassigned);
+ QVERIFY(QChar::unicodeVersion((uint)0x09ff) == QChar::Unicode_Unassigned);
+ QVERIFY(QChar::unicodeVersion((uint)0x110000) == QChar::Unicode_Unassigned);
+}
void tst_QChar::digitValue()
{
@@ -647,12 +693,28 @@ void tst_QChar::decomposition()
void tst_QChar::lineBreakClass()
{
+ QVERIFY(QUnicodeTables::lineBreakClass(0x0029u) == QUnicodeTables::LineBreak_CP);
QVERIFY(QUnicodeTables::lineBreakClass(0x0041u) == QUnicodeTables::LineBreak_AL);
QVERIFY(QUnicodeTables::lineBreakClass(0x0033u) == QUnicodeTables::LineBreak_NU);
+ QVERIFY(QUnicodeTables::lineBreakClass(0x00adu) == QUnicodeTables::LineBreak_BA);
+ QVERIFY(QUnicodeTables::lineBreakClass(0x05d0u) == QUnicodeTables::LineBreak_HL);
QVERIFY(QUnicodeTables::lineBreakClass(0xe0164u) == QUnicodeTables::LineBreak_CM);
QVERIFY(QUnicodeTables::lineBreakClass(0x2f9a4u) == QUnicodeTables::LineBreak_ID);
QVERIFY(QUnicodeTables::lineBreakClass(0x10000u) == QUnicodeTables::LineBreak_AL);
- QVERIFY(QUnicodeTables::lineBreakClass(0x0fffdu) == QUnicodeTables::LineBreak_AL);
+
+ // mapped to AL:
+ QVERIFY(QUnicodeTables::lineBreakClass(0xfffdu) == QUnicodeTables::LineBreak_AL); // AI -> AL
+ QVERIFY(QUnicodeTables::lineBreakClass(0x100000u) == QUnicodeTables::LineBreak_AL); // XX -> AL
+}
+
+void tst_QChar::script()
+{
+ QVERIFY(QUnicodeTables::script(0x0020u) == QUnicodeTables::Common);
+ QVERIFY(QUnicodeTables::script(0x0041u) == QUnicodeTables::Common);
+ QVERIFY(QUnicodeTables::script(0x0375u) == QUnicodeTables::Greek);
+ QVERIFY(QUnicodeTables::script(0x0400u) == QUnicodeTables::Cyrillic);
+ QVERIFY(QUnicodeTables::script(0x0E01u) == QUnicodeTables::Thai);
+//### QVERIFY(QUnicodeTables::script(0x1018Au) == QUnicodeTables::Greek);
}
void tst_QChar::normalization_data()
@@ -663,8 +725,8 @@ void tst_QChar::normalization_data()
int linenum = 0;
int part = 0;
- QString testFile = QFINDTESTDATA("NormalizationTest.txt");
- QVERIFY2(!testFile.isEmpty(), "NormalizationTest.txt not found!");
+ QString testFile = QFINDTESTDATA("data/NormalizationTest.txt");
+ QVERIFY2(!testFile.isEmpty(), "data/NormalizationTest.txt not found!");
QFile f(testFile);
QVERIFY(f.exists());