Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Side by Side Diff: source/test/cintltst/cstrcase.c

Issue 1621843002: ICU 56 update step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@561
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/test/cintltst/creststn.c ('k') | source/test/cintltst/cucdapi.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 ******************************************************************************* 2 *******************************************************************************
3 * 3 *
4 * Copyright (C) 2002-2014, International Business Machines 4 * Copyright (C) 2002-2015, International Business Machines
5 * Corporation and others. All Rights Reserved. 5 * Corporation and others. All Rights Reserved.
6 * 6 *
7 ******************************************************************************* 7 *******************************************************************************
8 * file name: cstrcase.c 8 * file name: cstrcase.c
9 * encoding: US-ASCII 9 * encoding: US-ASCII
10 * tab size: 8 (not used) 10 * tab size: 8 (not used)
11 * indentation:4 11 * indentation:4
12 * 12 *
13 * created on: 2002feb21 13 * created on: 2002feb21
14 * created by: Markus W. Scherer 14 * created by: Markus W. Scherer
15 * 15 *
16 * Test file for string casing C API functions. 16 * Test file for string casing C API functions.
17 */ 17 */
18 18
19 #include <string.h> 19 #include <string.h>
20 #include "unicode/utypes.h" 20 #include "unicode/utypes.h"
21 #include "unicode/uchar.h" 21 #include "unicode/uchar.h"
22 #include "unicode/ustring.h" 22 #include "unicode/ustring.h"
23 #include "unicode/uloc.h" 23 #include "unicode/uloc.h"
24 #include "unicode/ubrk.h" 24 #include "unicode/ubrk.h"
25 #include "unicode/ucasemap.h" 25 #include "unicode/ucasemap.h"
26 #include "cmemory.h" 26 #include "cmemory.h"
27 #include "cintltst.h" 27 #include "cintltst.h"
28 #include "ustr_imp.h"
28 29
29 /* test string case mapping functions --------------------------------------- */ 30 /* test string case mapping functions --------------------------------------- */
30 31
31 static void 32 static void
32 TestCaseLower(void) { 33 TestCaseLower(void) {
33 static const UChar 34 static const UChar
34 35
35 beforeLower[]= { 0x61, 0x42, 0x49, 0x3a3, 0xdf, 0x3a3, 0x2f, 0xd93f, 0xdfff }, 36 beforeLower[]= { 0x61, 0x42, 0x49, 0x3a3, 0xdf, 0x3a3, 0x2f, 0xd93f, 0xdfff },
36 lowerRoot[]= { 0x61, 0x62, 0x69, 0x3c3, 0xdf, 0x3c2, 0x2f, 0xd93f, 0xdfff }, 37 lowerRoot[]= { 0x61, 0x62, 0x69, 0x3c3, 0xdf, 0x3c2, 0x2f, 0xd93f, 0xdfff },
37 lowerTurkish[]={ 0x61, 0x62, 0x131, 0x3c3, 0xdf, 0x3c2, 0x2f, 0xd93f, 0xdfff }; 38 lowerTurkish[]={ 0x61, 0x62, 0x131, 0x3c3, 0xdf, 0x3c2, 0x2f, 0xd93f, 0xdfff };
(...skipping 944 matching lines...) Expand 10 before | Expand all | Expand 10 after
982 ) { 983 ) {
983 log_err("ucasemap_utf8ToTitle(sentence break iterator, no lowercasin g)=%ld failed - %s\n", (long)length, u_errorName(errorCode)); 984 log_err("ucasemap_utf8ToTitle(sentence break iterator, no lowercasin g)=%ld failed - %s\n", (long)length, u_errorName(errorCode));
984 } 985 }
985 } 986 }
986 987
987 ucasemap_close(csm); 988 ucasemap_close(csm);
988 } 989 }
989 990
990 #endif 991 #endif
991 992
993 /* Test case for internal API u_caseInsensitivePrefixMatch */
994 static void
995 TestUCaseInsensitivePrefixMatch(void) {
996 struct {
997 const char *s1;
998 const char *s2;
999 int32_t r1;
1000 int32_t r2;
1001 } testCases[] = {
1002 {"ABC", "ab", 2, 2},
1003 {"ABCD", "abcx", 3, 3},
1004 {"ABC", "xyz", 0, 0},
1005 /* U+00DF LATIN SMALL LETTER SHARP S */
1006 {"A\\u00dfBC", "Ass", 2, 3},
1007 {"Fust", "Fu\\u00dfball", 2, 2},
1008 {"\\u00dfsA", "s\\u00dfB", 2, 2},
1009 {"\\u00dfs", "s\\u00df", 2, 2},
1010 /* U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE */
1011 {"XYZ\\u0130i\\u0307xxx", "xyzi\\u0307\\u0130yyy", 6, 6},
1012 {0, 0, 0, 0}
1013 };
1014 int32_t i;
1015
1016 for (i = 0; testCases[i].s1 != 0; i++) {
1017 UErrorCode sts = U_ZERO_ERROR;
1018 UChar u1[64], u2[64];
1019 int32_t matchLen1, matchLen2;
1020
1021 u_unescape(testCases[i].s1, u1, 64);
1022 u_unescape(testCases[i].s2, u2, 64);
1023
1024 u_caseInsensitivePrefixMatch(u1, -1, u2, -1, 0, &matchLen1, &matchLen2, &sts);
1025 if (U_FAILURE(sts)) {
1026 log_err("error: %s, s1=%s, s2=%s", u_errorName(sts), testCases[i].s1 , testCases[i].s2);
1027 } else if (matchLen1 != testCases[i].r1 || matchLen2 != testCases[i].r2) {
1028 log_err("s1=%s, s2=%2 / match len1=%d, len2=%d / expected len1=%d, l en2=%d",
1029 testCases[i].s1, testCases[i].s2,
1030 matchLen1, matchLen2,
1031 testCases[i].r1, testCases[i].r2);
1032 }
1033 }
1034 }
1035
992 void addCaseTest(TestNode** root); 1036 void addCaseTest(TestNode** root);
993 1037
994 void addCaseTest(TestNode** root) { 1038 void addCaseTest(TestNode** root) {
995 /* cstrcase.c functions, declared in cucdtst.h */ 1039 /* cstrcase.c functions, declared in cucdtst.h */
996 addTest(root, &TestCaseLower, "tsutil/cstrcase/TestCaseLower"); 1040 addTest(root, &TestCaseLower, "tsutil/cstrcase/TestCaseLower");
997 addTest(root, &TestCaseUpper, "tsutil/cstrcase/TestCaseUpper"); 1041 addTest(root, &TestCaseUpper, "tsutil/cstrcase/TestCaseUpper");
998 #if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILE_IO 1042 #if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILE_IO
999 addTest(root, &TestCaseTitle, "tsutil/cstrcase/TestCaseTitle"); 1043 addTest(root, &TestCaseTitle, "tsutil/cstrcase/TestCaseTitle");
1000 addTest(root, &TestCaseDutchTitle, "tsutil/cstrcase/TestCaseDutchTitle"); 1044 addTest(root, &TestCaseDutchTitle, "tsutil/cstrcase/TestCaseDutchTitle");
1001 #endif 1045 #endif
1002 addTest(root, &TestCaseFolding, "tsutil/cstrcase/TestCaseFolding"); 1046 addTest(root, &TestCaseFolding, "tsutil/cstrcase/TestCaseFolding");
1003 addTest(root, &TestCaseCompare, "tsutil/cstrcase/TestCaseCompare"); 1047 addTest(root, &TestCaseCompare, "tsutil/cstrcase/TestCaseCompare");
1004 addTest(root, &TestUCaseMap, "tsutil/cstrcase/TestUCaseMap"); 1048 addTest(root, &TestUCaseMap, "tsutil/cstrcase/TestUCaseMap");
1005 #if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILE_IO 1049 #if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILE_IO
1006 addTest(root, &TestUCaseMapToTitle, "tsutil/cstrcase/TestUCaseMapToTitle"); 1050 addTest(root, &TestUCaseMapToTitle, "tsutil/cstrcase/TestUCaseMapToTitle");
1007 #endif 1051 #endif
1052 addTest(root, &TestUCaseInsensitivePrefixMatch, "tsutil/cstrcase/TestUCaseIn sensitivePrefixMatch");
1008 } 1053 }
OLDNEW
« no previous file with comments | « source/test/cintltst/creststn.c ('k') | source/test/cintltst/cucdapi.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698