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

Side by Side Diff: source/test/intltest/g7coll.cpp

Issue 845603002: Update ICU to 54.1 step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: remove unusued directories Created 5 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/intltest/ficoll.cpp ('k') | source/test/intltest/genderinfotest.cpp » ('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 * COPYRIGHT: 2 * COPYRIGHT:
3 * Copyright (c) 1997-2010, International Business Machines Corporation and 3 * Copyright (c) 1997-2014, International Business Machines Corporation and
4 * others. All Rights Reserved. 4 * others. All Rights Reserved.
5 ********************************************************************/ 5 ********************************************************************/
6 6
7 #include "unicode/utypes.h" 7 #include "unicode/utypes.h"
8 8
9 #if !UCONFIG_NO_COLLATION 9 #if !UCONFIG_NO_COLLATION
10 10
11 #include "unicode/coll.h" 11 #include "unicode/coll.h"
12 #include "unicode/tblcoll.h" 12 #include "unicode/tblcoll.h"
13 #include "unicode/unistr.h" 13 #include "unicode/unistr.h"
14 #include "unicode/sortkey.h" 14 #include "unicode/sortkey.h"
15 #include "g7coll.h" 15 #include "g7coll.h"
16 #include "sfwdchit.h" 16 #include "sfwdchit.h"
17 17 #include "cmemory.h"
18 18
19 static const UChar testCases[][G7CollationTest::MAX_TOKEN_LEN] = { 19 static const UChar testCases[][G7CollationTest::MAX_TOKEN_LEN] = {
20 { 0x0062 /*'b'*/, 0x006c /*'l'*/, 0x0061 /*'a'*/, 0x0062 /*'c'*/, 0x006b /* 'k'*/, 20 { 0x0062 /*'b'*/, 0x006c /*'l'*/, 0x0061 /*'a'*/, 0x0062 /*'c'*/, 0x006b /* 'k'*/,
21 0x0062 /*'b'*/, 0x0069 /*'i'*/, 0x0072 /*'r'*/, 0x0064 /*'d'*/, 0x0073 / *'s'*/, 0x0000}, /* 9 */ 21 0x0062 /*'b'*/, 0x0069 /*'i'*/, 0x0072 /*'r'*/, 0x0064 /*'d'*/, 0x0073 / *'s'*/, 0x0000}, /* 9 */
22 { 0x0050 /*'P'*/, 0x0061 /*'a'*/, 0x0074/*'t'*/, 0x0000}, /* 1 */ 22 { 0x0050 /*'P'*/, 0x0061 /*'a'*/, 0x0074/*'t'*/, 0x0000}, /* 1 */
23 { 0x0070 /*'p'*/, 0x00E9, 0x0063 /*'c'*/, 0x0068 /*'h'*/, 0x00E9, 0x0000}, /* 2 */ 23 { 0x0070 /*'p'*/, 0x00E9, 0x0063 /*'c'*/, 0x0068 /*'h'*/, 0x00E9, 0x0000}, /* 2 */
24 { 0x0070 /*'p'*/, 0x00EA, 0x0063 /*'c'*/, 0x0068 /*'h'*/, 0x0065 /*'e'*/, 0x 0000}, /* 3 */ 24 { 0x0070 /*'p'*/, 0x00EA, 0x0063 /*'c'*/, 0x0068 /*'h'*/, 0x0065 /*'e'*/, 0x 0000}, /* 3 */
25 { 0x0070 /*'p'*/, 0x00E9, 0x0063 /*'c'*/, 0x0068 /*'h'*/, 0x0065 /*'e'*/, 0x 0072 /*'r'*/, 0x0000}, /* 4 */ 25 { 0x0070 /*'p'*/, 0x00E9, 0x0063 /*'c'*/, 0x0068 /*'h'*/, 0x0065 /*'e'*/, 0x 0072 /*'r'*/, 0x0000}, /* 4 */
26 { 0x0070 /*'p'*/, 0x00EA, 0x0063 /*'c'*/, 0x0068 /*'h'*/, 0x0065 /*'e'*/, 0x 0072 /*'r'*/, 0x0000}, /* 5 */ 26 { 0x0070 /*'p'*/, 0x00EA, 0x0063 /*'c'*/, 0x0068 /*'h'*/, 0x0065 /*'e'*/, 0x 0072 /*'r'*/, 0x0000}, /* 5 */
27 { 0x0054 /*'T'*/, 0x006f /*'o'*/, 0x0064 /*'d'*/, 0x0000}, /* 6 */ 27 { 0x0054 /*'T'*/, 0x006f /*'o'*/, 0x0064 /*'d'*/, 0x0000}, /* 6 */
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 Locale("en", "US", ""), 84 Locale("en", "US", ""),
85 Locale("en", "GB", ""), 85 Locale("en", "GB", ""),
86 Locale("en", "CA", ""), 86 Locale("en", "CA", ""),
87 Locale("fr", "FR", ""), 87 Locale("fr", "FR", ""),
88 Locale("fr", "CA", ""), 88 Locale("fr", "CA", ""),
89 Locale("de", "DE", ""), 89 Locale("de", "DE", ""),
90 Locale("it", "IT", ""), 90 Locale("it", "IT", ""),
91 Locale("ja", "JP", "") 91 Locale("ja", "JP", "")
92 }; 92 };
93 93
94 94 for (i = 0; i < UPRV_LENGTHOF(locales); i++)
95 for (i = 0; i < 8; i++)
96 { 95 {
97 Collator *myCollation= 0;
98 UnicodeString dispName; 96 UnicodeString dispName;
99 UErrorCode status = U_ZERO_ERROR; 97 UErrorCode status = U_ZERO_ERROR;
100 RuleBasedCollator* tblColl1 = 0;
101 98
102 myCollation = Collator::createInstance(locales[i], status); 99 const Locale &locale = locales[i];
100 LocalPointer<Collator> myCollation(Collator::createInstance(locale, stat us));
103 if(U_FAILURE(status)) { 101 if(U_FAILURE(status)) {
104 delete myCollation;
105 errcheckln(status, "Couldn't instantiate collator. Error: %s", u_error Name(status)); 102 errcheckln(status, "Couldn't instantiate collator. Error: %s", u_error Name(status));
106 return; 103 return;
107 } 104 }
108 myCollation->setStrength(Collator::QUATERNARY); 105 myCollation->setStrength(Collator::QUATERNARY);
109 myCollation->setAttribute(UCOL_ALTERNATE_HANDLING, UCOL_SHIFTED, status) ; 106 myCollation->setAttribute(UCOL_ALTERNATE_HANDLING, UCOL_SHIFTED, status) ;
110 if (U_FAILURE(status)) 107 if (U_FAILURE(status)) {
111 { 108 errln("Locale %s creation failed - %s", locale.getName(), u_errorNam e(status));
112 UnicodeString msg;
113
114 msg += "Locale ";
115 msg += locales[i].getDisplayName(dispName);
116 msg += "creation failed.";
117
118 errln(msg);
119 continue; 109 continue;
120 } 110 }
121 111
122 // const UnicodeString& defRules = ((RuleBasedCollator*)myCollation)->get Rules(); 112 const UnicodeString &rules = ((RuleBasedCollator*)myCollation.getAlias() )->getRules();
123 status = U_ZERO_ERROR; 113 if (rules.isEmpty() &&
124 tblColl1 = new RuleBasedCollator(((RuleBasedCollator*)myCollation)->getR ules(), status); 114 (locale == Locale::getCanadaFrench() || locale == Locale::getJap anese())) {
125 if (U_FAILURE(status)) 115 dataerrln("%s Collator missing rule string", locale.getName());
126 { 116 if (logKnownIssue("10671", "TestG7Locales does not test ignore-punct uation")) {
127 UnicodeString msg, name; 117 continue;
128 118 }
129 msg += "Recreate "; 119 } else {
130 msg += locales[i].getDisplayName(name); 120 status = U_ZERO_ERROR;
131 msg += "collation failed."; 121 RuleBasedCollator *tblColl1 = new RuleBasedCollator(rules, status);
132 122 if (U_FAILURE(status)) {
133 errln(msg); 123 errln("Recreate %s collation failed - %s", locale.getName(), u_e rrorName(status));
134 continue; 124 continue;
125 }
126 myCollation.adoptInstead(tblColl1);
135 } 127 }
136 128
137 UnicodeString msg; 129 UnicodeString msg;
138 130
139 msg += "Locale "; 131 msg += "Locale ";
140 msg += locales[i].getDisplayName(dispName); 132 msg += locales[i].getDisplayName(dispName);
141 msg += "tests start :"; 133 msg += "tests start :";
142 logln(msg); 134 logln(msg);
143 135
144 int32_t j, n; 136 int32_t j, n;
145 for (j = 0; j < FIXEDTESTSET; j++) 137 for (j = 0; j < FIXEDTESTSET; j++)
146 { 138 {
147 for (n = j+1; n < FIXEDTESTSET; n++) 139 for (n = j+1; n < FIXEDTESTSET; n++)
148 { 140 {
149 doTest(tblColl1, testCases[results[i][j]], testCases[results[i][ n]], Collator::LESS); 141 doTest(myCollation.getAlias(), testCases[results[i][j]], testCas es[results[i][n]], Collator::LESS);
150 } 142 }
151 } 143 }
152
153 delete myCollation;
154 delete tblColl1;
155 } 144 }
156 } 145 }
157 146
158 void G7CollationTest::TestDemo1(/* char* par */) 147 void G7CollationTest::TestDemo1(/* char* par */)
159 { 148 {
160 logln("Demo Test 1 : Create a new table collation with rules \"& Z < p, P\"" ); 149 logln("Demo Test 1 : Create a new table collation with rules \"& Z < p, P\"" );
161 UErrorCode status = U_ZERO_ERROR; 150 UErrorCode status = U_ZERO_ERROR;
162 Collator *col = Collator::createInstance("en_US", status); 151 Collator *col = Collator::createInstance("en_US", status);
163 if(U_FAILURE(status)) { 152 if(U_FAILURE(status)) {
164 delete col; 153 delete col;
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 case 0: name = "TestG7Locales"; if (exec) TestG7Locales(/* par */); br eak; 282 case 0: name = "TestG7Locales"; if (exec) TestG7Locales(/* par */); br eak;
294 case 1: name = "TestDemo1"; if (exec) TestDemo1(/* par */); break; 283 case 1: name = "TestDemo1"; if (exec) TestDemo1(/* par */); break;
295 case 2: name = "TestDemo2"; if (exec) TestDemo2(/* par */); break; 284 case 2: name = "TestDemo2"; if (exec) TestDemo2(/* par */); break;
296 case 3: name = "TestDemo3"; if (exec) TestDemo3(/* par */); break; 285 case 3: name = "TestDemo3"; if (exec) TestDemo3(/* par */); break;
297 case 4: name = "TestDemo4"; if (exec) TestDemo4(/* par */); break; 286 case 4: name = "TestDemo4"; if (exec) TestDemo4(/* par */); break;
298 default: name = ""; break; 287 default: name = ""; break;
299 } 288 }
300 } 289 }
301 290
302 #endif /* #if !UCONFIG_NO_COLLATION */ 291 #endif /* #if !UCONFIG_NO_COLLATION */
OLDNEW
« no previous file with comments | « source/test/intltest/ficoll.cpp ('k') | source/test/intltest/genderinfotest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698