kernel32/tests: Add more Unicode digit ranges.

This commit is contained in:
Alexandre Julliard 2014-03-07 13:37:14 +01:00
parent 83367e874c
commit e64189aa55
1 changed files with 40 additions and 6 deletions

View File

@ -2320,6 +2320,7 @@ static void test_FoldStringW(void)
0x0030, /* '0'-'9' */ 0x0030, /* '0'-'9' */
0x0660, /* Eastern Arabic */ 0x0660, /* Eastern Arabic */
0x06F0, /* Arabic - Hindu */ 0x06F0, /* Arabic - Hindu */
0x07C0, /* Nko */
0x0966, /* Devengari */ 0x0966, /* Devengari */
0x09E6, /* Bengalii */ 0x09E6, /* Bengalii */
0x0A66, /* Gurmukhi */ 0x0A66, /* Gurmukhi */
@ -2331,16 +2332,37 @@ static void test_FoldStringW(void)
0x0D66, /* Maylayalam */ 0x0D66, /* Maylayalam */
0x0E50, /* Thai */ 0x0E50, /* Thai */
0x0ED0, /* Laos */ 0x0ED0, /* Laos */
0x0F29, /* Tibet - 0 is out of sequence */ 0x0F20, /* Tibet */
0x0F29, /* Tibet half - 0 is out of sequence */
0x1040, /* Myanmar */
0x1090, /* Myanmar Shan */
0x1368, /* Ethiopic - no 0 */
0x17E0, /* Khmer */
0x1810, /* Mongolian */
0x1946, /* Limbu */
0x19D0, /* New Tai Lue */
0x1A80, /* Tai Tham Hora */
0x1A90, /* Tai Tham Tham */
0x1B50, /* Balinese */
0x1BB0, /* Sundanese */
0x1C40, /* Lepcha */
0x1C50, /* Ol Chiki */
0x2070, /* Superscript - 1, 2, 3 are out of sequence */ 0x2070, /* Superscript - 1, 2, 3 are out of sequence */
0x2080, /* Subscript */ 0x2080, /* Subscript */
0x245F, /* Circled - 0 is out of sequence */ 0x245F, /* Circled - 0 is out of sequence */
0x2473, /* Bracketed */ 0x2473, /* Bracketed */
0x2487, /* Full stop */ 0x2487, /* Full stop */
0x24F4, /* Double Circled */
0x2775, /* Inverted circled - No 0 */ 0x2775, /* Inverted circled - No 0 */
0x277F, /* Patterned circled - No 0 */ 0x277F, /* Patterned circled - No 0 */
0x2789, /* Inverted Patterned circled - No 0 */ 0x2789, /* Inverted Patterned circled - No 0 */
0x3020, /* Hangzhou */ 0x3020, /* Hangzhou */
0xA620, /* Vai */
0xA8D0, /* Saurashtra */
0xA900, /* Kayah Li */
0xA9D0, /* Javanese */
0xAA50, /* Cham */
0xABF0, /* Meetei Mayek */
0xff10, /* Pliene chasse (?) */ 0xff10, /* Pliene chasse (?) */
0xffff /* Terminator */ 0xffff /* Terminator */
}; };
@ -2350,8 +2372,17 @@ static void test_FoldStringW(void)
0xB9, /* Superscript 1 */ 0xB9, /* Superscript 1 */
0xB2, /* Superscript 2 */ 0xB2, /* Superscript 2 */
0xB3, /* Superscript 3 */ 0xB3, /* Superscript 3 */
0x0C78, /* Telugu Fraction 0 */
0x0C79, /* Telugu Fraction 1 */
0x0C7A, /* Telugu Fraction 2 */
0x0C7B, /* Telugu Fraction 3 */
0x0C7C, /* Telugu Fraction 1 */
0x0C7D, /* Telugu Fraction 2 */
0x0C7E, /* Telugu Fraction 3 */
0x0F33, /* Tibetan half zero */ 0x0F33, /* Tibetan half zero */
0x19DA, /* New Tai Lue Tham 1 */
0x24EA, /* Circled 0 */ 0x24EA, /* Circled 0 */
0x24FF, /* Negative Circled 0 */
0x3007, /* Ideographic number zero */ 0x3007, /* Ideographic number zero */
'\0' /* Terminator */ '\0' /* Terminator */
}; };
@ -2360,8 +2391,10 @@ static void test_FoldStringW(void)
{ {
0x0BE6, /* No Tamil 0 */ 0x0BE6, /* No Tamil 0 */
0x0F29, /* No Tibetan half zero (out of sequence) */ 0x0F29, /* No Tibetan half zero (out of sequence) */
0x1368, /* No Ethiopic 0 */
0x2473, /* No Bracketed 0 */ 0x2473, /* No Bracketed 0 */
0x2487, /* No 0 Full stop */ 0x2487, /* No 0 Full stop */
0x24F4, /* No double circled 0 */
0x2775, /* No inverted circled 0 */ 0x2775, /* No inverted circled 0 */
0x277F, /* No patterned circled */ 0x277F, /* No patterned circled */
0x2789, /* No inverted Patterned circled */ 0x2789, /* No inverted Patterned circled */
@ -2489,10 +2522,11 @@ static void test_FoldStringW(void)
ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError()); ok(ret == 2, "Expected ret == 2, got %d, error %d\n", ret, GetLastError());
ok(dst[0] == ch || strchrW(outOfSequenceDigits, ch) || ok(dst[0] == ch || strchrW(outOfSequenceDigits, ch) ||
/* Wine (correctly) maps all Unicode 4.0+ digits */ (ch >= 0xa8e0 && ch <= 0xa8e9), /* combining Devanagari on Win8 */
isdigitW(ch) || (ch >= 0x24F5 && ch <= 0x24FD) || ch == 0x24FF || ch == 0x19da || "MAP_FOLDDIGITS: ch 0x%04x Expected unchanged got %04x\n", ch, dst[0]);
(ch >= 0x1369 && ch <= 0x1371), ok(!isdigitW(ch) || strchrW(outOfSequenceDigits, ch) ||
"MAP_FOLDDIGITS: ch %d 0x%04x Expected unchanged got %d\n", ch, ch, dst[0]); broken( ch >= 0xbf0 && ch <= 0xbf2 ), /* win2k */
"char %04x should not be a digit\n", ch );
} }
if (digitRanges[j] == 0xffff) if (digitRanges[j] == 0xffff)
@ -2519,7 +2553,7 @@ static void test_FoldStringW(void)
(digitRanges[j] == 0x3020 && dst[0] == ch) || /* Hangzhou not present in all Windows versions */ (digitRanges[j] == 0x3020 && dst[0] == ch) || /* Hangzhou not present in all Windows versions */
(digitRanges[j] == 0x0F29 && dst[0] == ch) || /* Tibetan not present in all Windows versions */ (digitRanges[j] == 0x0F29 && dst[0] == ch) || /* Tibetan not present in all Windows versions */
strchrW(noDigitAvailable, c), strchrW(noDigitAvailable, c),
"MAP_FOLDDIGITS: ch %d Expected %d got %d\n", "MAP_FOLDDIGITS: ch %04x Expected %04x got %04x\n",
ch, '0' + digitRanges[j] - ch, dst[0]); ch, '0' + digitRanges[j] - ch, dst[0]);
} }
prev_ch = ch; prev_ch = ch;