Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/java/text/Collator/G7Test.java
41149 views
1
/*
2
* Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/*
25
* @test
26
* @library /java/text/testlib
27
* @summary test G7 Collation
28
* @modules jdk.localedata
29
*/
30
/*
31
*
32
*
33
* (C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved
34
* (C) Copyright IBM Corp. 1996, 1997 - All Rights Reserved
35
*
36
* Portions copyright (c) 2007 Sun Microsystems, Inc. All Rights Reserved.
37
*
38
* The original version of this source code and documentation is copyrighted
39
* and owned by Taligent, Inc., a wholly-owned subsidiary of IBM. These
40
* materials are provided under terms of a License Agreement between Taligent
41
* and Sun. This technology is protected by multiple US and International
42
* patents. This notice and attribution to Taligent may not be removed.
43
* Taligent is a registered trademark of Taligent, Inc.
44
*
45
*/
46
47
/**
48
* G7 Test cases
49
*
50
* @author Helena Shih
51
*/
52
53
import java.text.Collator;
54
import java.text.RuleBasedCollator;
55
import java.util.Locale;
56
57
// G7 test program for printing out test results
58
59
public class G7Test extends CollatorTest {
60
61
public static void main(String[] args) throws Exception {
62
new G7Test().run(args);
63
}
64
65
private static final String testCases[] = {
66
"black-birds", // 0
67
"Pat", // 1
68
"p\u00E9ch\u00E9", // 2
69
"p\u00EAche", // 3
70
"p\u00E9cher", // 4
71
"p\u00EAcher", // 5
72
"Tod", // 6
73
"T\u00F6ne", // 7
74
"Tofu", // 8
75
"blackbirds", // 9
76
"Ton", // 10
77
"PAT", // 11
78
"blackbird", // 12
79
"black-bird", // 13
80
"pat", // 14
81
// Additional tests
82
"czar", // 15
83
"churo", // 16
84
"cat", // 17
85
"darn", // 18
86
"?", // 19
87
"quick", // 20
88
"#", // 21
89
"&", // 22
90
"aardvark", // 23
91
"a-rdvark", // 24
92
"abbot", // 25
93
"coop", // 26
94
"co-p", // 27
95
"cop", // 28
96
"zebra" // 29
97
};
98
99
// loop to TOTALTESTSET
100
private static final int[][] G7Results = {
101
{ 12, 13, 9, 0, 14, 1, 11, 2, 3, 4,
102
5, 6, 8, 10, 7, 31, 31, 31, 31, 31,
103
31, 31, 31, 31, 31, 31, 31, 31, 31, 31 }, // en_US
104
{ 12, 13, 9, 0, 14, 1, 11, 2, 3, 4,
105
5, 6, 8, 10, 7, 31, 31, 31, 31, 31,
106
31, 31, 31, 31, 31, 31, 31, 31, 31, 31 }, // en_GB
107
{ 12, 13, 9, 0, 14, 1, 11, 2, 3, 4,
108
5, 6, 8, 10, 7, 31, 31, 31, 31, 31,
109
31, 31, 31, 31, 31, 31, 31, 31, 31, 31 }, // en_CA
110
{ 12, 13, 9, 0, 14, 1, 11, 3, 2, 4,
111
5, 6, 8, 10, 7, 31, 31, 31, 31, 31,
112
31, 31, 31, 31, 31, 31, 31, 31, 31, 31 }, // fr_FR
113
{ 12, 13, 9, 0, 14, 1, 11, 3, 2, 4,
114
5, 6, 8, 10, 7, 31, 31, 31, 31, 31,
115
31, 31, 31, 31, 31, 31, 31, 31, 31, 31 }, // fr_CA
116
{ 12, 13, 9, 0, 14, 1, 11, 2, 3, 4,
117
5, 6, 8, 10, 7, 31, 31, 31, 31, 31,
118
31, 31, 31, 31, 31, 31, 31, 31, 31, 31 }, // de_DE
119
{ 12, 13, 9, 0, 14, 1, 11, 2, 3, 4,
120
5, 6, 8, 10, 7, 31, 31, 31, 31, 31,
121
31, 31, 31, 31, 31, 31, 31, 31, 31, 31 }, // it_IT
122
{ 12, 13, 9, 0, 14, 1, 11, 2, 3, 4,
123
5, 6, 8, 10, 7, 31, 31, 31, 31, 31,
124
31, 31, 31, 31, 31, 31, 31, 31, 31, 31 }, // ja_JP
125
};
126
127
// new table collation with rules "& Z < p, P"
128
// loop to FIXEDTESTSET
129
private static final int[] Test1Results = {
130
12, 13, 9, 0, 6, 8, 10, 7, 14, 1,
131
11, 2, 3, 4, 5, 31, 31, 31, 31, 31,
132
31, 31, 31, 31, 31, 31, 31, 31, 31, 31
133
};
134
135
// new table collation with rules "& C < ch , cH, Ch, CH "
136
// loop to TOTALTESTSET
137
private static final int[] Test2Results = {
138
19, 22, 21, 23, 25, 24, 12, 13, 9, 0,
139
17, 26, 28, 27, 15, 16, 18, 14, 1, 11,
140
2, 3, 4, 5, 20, 6, 8, 10, 7, 29
141
};
142
143
// new table collation with rules
144
// "& Question-mark ; ? & Hash-mark ; # & Ampersand ; '&' "
145
// loop to TOTALTESTSET
146
private static final int[] Test3Results = {
147
23, 25, 22, 24, 12, 13, 9, 0, 17, 16,
148
26, 28, 27, 15, 18, 21, 14, 1, 11, 2,
149
3, 4, 5, 19, 20, 6, 8, 10, 7, 29
150
};
151
152
// analogous to Japanese rules
153
// " & aa ; a- & ee ; e- & ii ; i- & oo ; o- & uu ; u- "
154
// loop to TOTALTESTSET
155
private static final int[] Test4Results = {
156
19, 22, 21, 23, 24, 25, 12, 13, 9, 0,
157
17, 16, 26, 27, 28, 15, 18, 14, 1, 11,
158
2, 3, 4, 5, 20, 6, 8, 10, 7, 29
159
};
160
161
public void TestG7Data() {
162
for (int i = 0; i < locales.length; i++) {
163
Collator myCollation= null;
164
RuleBasedCollator tblColl1 = null;
165
166
try {
167
myCollation = Collator.getInstance(locales[i]);
168
tblColl1 = new RuleBasedCollator(((RuleBasedCollator)myCollation).getRules());
169
} catch (Exception foo) {
170
errln("Exception: " + foo.getMessage() +
171
" Locale : " + locales[i].getDisplayName() +
172
" getRules failed\n");
173
continue;
174
}
175
for (int j = 0; j < FIXEDTESTSET; j++) {
176
for (int n = j+1; n < FIXEDTESTSET; n++) {
177
doTest(tblColl1, testCases[G7Results[i][j]],
178
testCases[G7Results[i][n]], -1);
179
}
180
}
181
myCollation = null;
182
}
183
}
184
185
/*
186
* Demo Test 1 : Create a new table collation with rules "& Z < p, P"
187
*/
188
public void TestDemoTest1() {
189
int j = 0;
190
final Collator myCollation = Collator.getInstance(Locale.US);
191
final String defRules = ((RuleBasedCollator)myCollation).getRules();
192
RuleBasedCollator tblColl = null;
193
String newRules = defRules + " & Z < p, P";
194
195
try {
196
tblColl = new RuleBasedCollator(newRules);
197
for (j = 0; j < FIXEDTESTSET; j++) {
198
for (int n = j+1; n < FIXEDTESTSET; n++) {
199
doTest(tblColl, testCases[Test1Results[j]],
200
testCases[Test1Results[n]], -1);
201
}
202
}
203
tblColl = null;
204
} catch (Exception foo) {
205
errln("Exception: " + foo.getMessage() +
206
"\nDemo Test 1 Table Collation object creation failed.");
207
}
208
}
209
210
/*
211
* Demo Test 2 : Create a new table collation with rules
212
* "& C < ch , cH, Ch, CH"
213
*/
214
public void TestDemoTest2() {
215
final Collator myCollation = Collator.getInstance(Locale.US);
216
final String defRules = ((RuleBasedCollator)myCollation).getRules();
217
String newRules = defRules + "& C < ch , cH, Ch, CH";
218
219
try {
220
RuleBasedCollator tblColl = new RuleBasedCollator(newRules);
221
for (int j = 0; j < TOTALTESTSET; j++) {
222
for (int n = j+1; n < TOTALTESTSET; n++) {
223
doTest(tblColl, testCases[Test2Results[j]],
224
testCases[Test2Results[n]], -1);
225
}
226
}
227
} catch (Exception foo) {
228
errln("Exception: " + foo.getMessage() +
229
"\nDemo Test 2 Table Collation object creation failed.\n");
230
}
231
}
232
233
/*
234
* Demo Test 3 : Create a new table collation with rules
235
* "& Question'-'mark ; '?' & Hash'-'mark ; '#' & Ampersand ; '&'"
236
*/
237
public void TestDemoTest3() {
238
final Collator myCollation = Collator.getInstance(Locale.US);
239
final String defRules = ((RuleBasedCollator)myCollation).getRules();
240
RuleBasedCollator tblColl = null;
241
String newRules = defRules + "& Question'-'mark ; '?' & Hash'-'mark ; '#' & Ampersand ; '&";
242
243
try {
244
tblColl = new RuleBasedCollator(newRules);
245
for (int j = 0; j < TOTALTESTSET; j++) {
246
for (int n = j+1; n < TOTALTESTSET; n++) {
247
doTest(tblColl, testCases[Test3Results[j]],
248
testCases[Test3Results[n]], -1);
249
}
250
}
251
} catch (Exception foo) {
252
errln("Exception: " + foo.getMessage() +
253
"\nDemo Test 3 Table Collation object creation failed.");
254
}
255
}
256
257
/*
258
* Demo Test 4 : Create a new table collation with rules
259
* " & aa ; a'-' & ee ; e'-' & ii ; i'-' & oo ; o'-' & uu ; u'-' "
260
*/
261
public void TestDemoTest4() {
262
final Collator myCollation = Collator.getInstance(Locale.US);
263
final String defRules = ((RuleBasedCollator)myCollation).getRules();
264
RuleBasedCollator tblColl = null;
265
String newRules = defRules + " & aa ; a'-' & ee ; e'-' & ii ; i'-' & oo ; o'-' & uu ; u'-' ";
266
267
try {
268
tblColl = new RuleBasedCollator(newRules);
269
for (int j = 0; j < TOTALTESTSET; j++) {
270
for (int n = j+1; n < TOTALTESTSET; n++) {
271
doTest(tblColl, testCases[Test4Results[j]],
272
testCases[Test4Results[n]], -1);
273
}
274
}
275
} catch (Exception foo) {
276
errln("Exception: " + foo.getMessage() +
277
"\nDemo Test 4 Table Collation object creation failed.");
278
}
279
tblColl = null;
280
}
281
282
private static final int FIXEDTESTSET = 15;
283
private static final int TOTALTESTSET = 30;
284
285
private static final Locale locales[] = {
286
Locale.US,
287
Locale.UK,
288
Locale.CANADA,
289
Locale.FRANCE,
290
Locale.CANADA_FRENCH,
291
Locale.GERMANY,
292
Locale.JAPAN,
293
Locale.ITALY
294
};
295
}
296
297