Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/java/text/Collator/DummyTest.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 Dummy Collation
28
*/
29
30
import java.text.Collator;
31
import java.text.RuleBasedCollator;
32
33
/*
34
(C) Copyright Taligent, Inc. 1996 - All Rights Reserved
35
(C) Copyright IBM Corp. 1996 - All Rights Reserved
36
37
The original version of this source code and documentation is copyrighted and
38
owned by Taligent, Inc., a wholly-owned subsidiary of IBM. These materials are
39
provided under terms of a License Agreement between Taligent and Sun. This
40
technology is protected by multiple US and International patents. This notice and
41
attribution to Taligent may not be removed.
42
Taligent is a registered trademark of Taligent, Inc.
43
*/
44
45
public class DummyTest extends CollatorTest {
46
47
public static void main(String[] args) throws Exception {
48
new DummyTest().run(args);
49
}
50
51
private static final String DEFAULTRULES =
52
"='\u200B'=\u200C=\u200D=\u200E=\u200F"
53
// Control Characters
54
+ "=\u0000 =\u0001 =\u0002 =\u0003 =\u0004" //null, .. eot
55
+ "=\u0005 =\u0006 =\u0007 =\u0008 ='\u0009'" //enq, ...
56
+ "='\u000b' =\u000e" //vt,, so
57
+ "=\u000f ='\u0010' =\u0011 =\u0012 =\u0013" //si, dle, dc1, dc2, dc3
58
+ "=\u0014 =\u0015 =\u0016 =\u0017 =\u0018" //dc4, nak, syn, etb, can
59
+ "=\u0019 =\u001a =\u001b =\u001c =\u001d" //em, sub, esc, fs, gs
60
+ "=\u001e =\u001f =\u007f" //rs, us, del
61
//....then the C1 Latin 1 reserved control codes
62
+ "=\u0080 =\u0081 =\u0082 =\u0083 =\u0084 =\u0085"
63
+ "=\u0086 =\u0087 =\u0088 =\u0089 =\u008a =\u008b"
64
+ "=\u008c =\u008d =\u008e =\u008f =\u0090 =\u0091"
65
+ "=\u0092 =\u0093 =\u0094 =\u0095 =\u0096 =\u0097"
66
+ "=\u0098 =\u0099 =\u009a =\u009b =\u009c =\u009d"
67
+ "=\u009e =\u009f"
68
// IGNORE except for secondary, tertiary difference
69
// Spaces
70
+ ";'\u0020';'\u00A0'" // spaces
71
+ ";'\u2000';'\u2001';'\u2002';'\u2003';'\u2004'" // spaces
72
+ ";'\u2005';'\u2006';'\u2007';'\u2008';'\u2009'" // spaces
73
+ ";'\u200A';'\u3000';'\uFEFF'" // spaces
74
+ ";'\r' ;'\t' ;'\n';'\f';'\u000b'" // whitespace
75
76
// Non-spacing accents
77
78
+ ";\u0301" // non-spacing acute accent
79
+ ";\u0300" // non-spacing grave accent
80
+ ";\u0306" // non-spacing breve accent
81
+ ";\u0302" // non-spacing circumflex accent
82
+ ";\u030c" // non-spacing caron/hacek accent
83
+ ";\u030a" // non-spacing ring above accent
84
+ ";\u030d" // non-spacing vertical line above
85
+ ";\u0308" // non-spacing diaeresis accent
86
+ ";\u030b" // non-spacing double acute accent
87
+ ";\u0303" // non-spacing tilde accent
88
+ ";\u0307" // non-spacing dot above/overdot accent
89
+ ";\u0304" // non-spacing macron accent
90
+ ";\u0337" // non-spacing short slash overlay (overstruck diacritic)
91
+ ";\u0327" // non-spacing cedilla accent
92
+ ";\u0328" // non-spacing ogonek accent
93
+ ";\u0323" // non-spacing dot-below/underdot accent
94
+ ";\u0332" // non-spacing underscore/underline accent
95
// with the rest of the general diacritical marks in binary order
96
+ ";\u0305" // non-spacing overscore/overline
97
+ ";\u0309" // non-spacing hook above
98
+ ";\u030e" // non-spacing double vertical line above
99
+ ";\u030f" // non-spacing double grave
100
+ ";\u0310" // non-spacing chandrabindu
101
+ ";\u0311" // non-spacing inverted breve
102
+ ";\u0312" // non-spacing turned comma above/cedilla above
103
+ ";\u0313" // non-spacing comma above
104
+ ";\u0314" // non-spacing reversed comma above
105
+ ";\u0315" // non-spacing comma above right
106
+ ";\u0316" // non-spacing grave below
107
+ ";\u0317" // non-spacing acute below
108
+ ";\u0318" // non-spacing left tack below
109
+ ";\u0319" // non-spacing tack below
110
+ ";\u031a" // non-spacing left angle above
111
+ ";\u031b" // non-spacing horn
112
+ ";\u031c" // non-spacing left half ring below
113
+ ";\u031d" // non-spacing up tack below
114
+ ";\u031e" // non-spacing down tack below
115
+ ";\u031f" // non-spacing plus sign below
116
+ ";\u0320" // non-spacing minus sign below
117
+ ";\u0321" // non-spacing palatalized hook below
118
+ ";\u0322" // non-spacing retroflex hook below
119
+ ";\u0324" // non-spacing double dot below
120
+ ";\u0325" // non-spacing ring below
121
+ ";\u0326" // non-spacing comma below
122
+ ";\u0329" // non-spacing vertical line below
123
+ ";\u032a" // non-spacing bridge below
124
+ ";\u032b" // non-spacing inverted double arch below
125
+ ";\u032c" // non-spacing hacek below
126
+ ";\u032d" // non-spacing circumflex below
127
+ ";\u032e" // non-spacing breve below
128
+ ";\u032f" // non-spacing inverted breve below
129
+ ";\u0330" // non-spacing tilde below
130
+ ";\u0331" // non-spacing macron below
131
+ ";\u0333" // non-spacing double underscore
132
+ ";\u0334" // non-spacing tilde overlay
133
+ ";\u0335" // non-spacing short bar overlay
134
+ ";\u0336" // non-spacing long bar overlay
135
+ ";\u0338" // non-spacing long slash overlay
136
+ ";\u0339" // non-spacing right half ring below
137
+ ";\u033a" // non-spacing inverted bridge below
138
+ ";\u033b" // non-spacing square below
139
+ ";\u033c" // non-spacing seagull below
140
+ ";\u033d" // non-spacing x above
141
+ ";\u033e" // non-spacing vertical tilde
142
+ ";\u033f" // non-spacing double overscore
143
+ ";\u0340" // non-spacing grave tone mark
144
+ ";\u0341" // non-spacing acute tone mark
145
+ ";\u0342;\u0343;\u0344;\u0345;\u0360;\u0361" // newer
146
+ ";\u0483;\u0484;\u0485;\u0486" // Cyrillic accents
147
148
+ ";\u20D0;\u20D1;\u20D2" // symbol accents
149
+ ";\u20D3;\u20D4;\u20D5" // symbol accents
150
+ ";\u20D6;\u20D7;\u20D8" // symbol accents
151
+ ";\u20D9;\u20DA;\u20DB" // symbol accents
152
+ ";\u20DC;\u20DD;\u20DE" // symbol accents
153
+ ";\u20DF;\u20E0;\u20E1" // symbol accents
154
155
+ ",'\u002D';\u00AD" // dashes
156
+ ";\u2010;\u2011;\u2012" // dashes
157
+ ";\u2013;\u2014;\u2015" // dashes
158
+ ";\u2212" // dashes
159
160
// other punctuation
161
162
+ "<'\u005f'" // underline/underscore (spacing)
163
+ "<\u00af" // overline or macron (spacing)
164
// + "<\u00ad" // syllable hyphen (SHY) or soft hyphen
165
+ "<'\u002c'" // comma (spacing)
166
+ "<'\u003b'" // semicolon
167
+ "<'\u003a'" // colon
168
+ "<'\u0021'" // exclamation point
169
+ "<\u00a1" // inverted exclamation point
170
+ "<'\u003f'" // question mark
171
+ "<\u00bf" // inverted question mark
172
+ "<'\u002f'" // slash
173
+ "<'\u002e'" // period/full stop
174
+ "<\u00b4" // acute accent (spacing)
175
+ "<'\u0060'" // grave accent (spacing)
176
+ "<'\u005e'" // circumflex accent (spacing)
177
+ "<\u00a8" // diaresis/umlaut accent (spacing)
178
+ "<'\u007e'" // tilde accent (spacing)
179
+ "<\u00b7" // middle dot (spacing)
180
+ "<\u00b8" // cedilla accent (spacing)
181
+ "<'\u0027'" // apostrophe
182
+ "<'\"'" // quotation marks
183
+ "<\u00ab" // left angle quotes
184
+ "<\u00bb" // right angle quotes
185
+ "<'\u0028'" // left parenthesis
186
+ "<'\u0029'" // right parenthesis
187
+ "<'\u005b'" // left bracket
188
+ "<'\u005d'" // right bracket
189
+ "<'\u007b'" // left brace
190
+ "<'\u007d'" // right brace
191
+ "<\u00a7" // section symbol
192
+ "<\u00b6" // paragraph symbol
193
+ "<\u00a9" // copyright symbol
194
+ "<\u00ae" // registered trademark symbol
195
+ "<'\u0040'" // at sign
196
+ "<\u00a4" // international currency symbol
197
+ "<\u00a2" // cent sign
198
+ "<'\u0024'" // dollar sign
199
+ "<\u00a3" // pound-sterling sign
200
+ "<\u00a5" // yen sign
201
+ "<'\u002a'" // asterisk
202
+ "<'\\u005c'" // backslash
203
+ "<'\u0026'" // ampersand
204
+ "<'\u0023'" // number sign
205
+ "<'\u0025'" // percent sign
206
+ "<'\u002b'" // plus sign
207
// + "<\u002d" // hyphen or minus sign
208
+ "<\u00b1" // plus-or-minus sign
209
+ "<\u00f7" // divide sign
210
+ "<\u00d7" // multiply sign
211
+ "<'\u003c'" // less-than sign
212
+ "<'\u003d'" // equal sign
213
+ "<'\u003e'" // greater-than sign
214
+ "<\u00ac" // end of line symbol/logical NOT symbol
215
+ "<'\u007c'" // vertical line/logical OR symbol
216
+ "<\u00a6" // broken vertical line
217
+ "<\u00b0" // degree symbol
218
+ "<\u00b5" // micro symbol
219
220
// NUMERICS
221
222
+ "<0<1<2<3<4<5<6<7<8<9"
223
+ "<\u00bc<\u00bd<\u00be" // 1/4,1/2,3/4 fractions
224
225
// NON-IGNORABLES
226
+ "<a,A"
227
+ "<b,B"
228
+ "<c,C"
229
+ "<d,D"
230
+ "<\u00F0,\u00D0" // eth
231
+ "<e,E"
232
+ "<f,F"
233
+ "<g,G"
234
+ "<h,H"
235
+ "<i,I"
236
+ "<j,J"
237
+ "<k,K"
238
+ "<l,L"
239
+ "<m,M"
240
+ "<n,N"
241
+ "<o,O"
242
+ "<p,P"
243
+ "<q,Q"
244
+ "<r,R"
245
+ "<s, S & SS,\u00DF" // s-zet
246
+ "<t,T"
247
+ "&th, \u00FE & TH, \u00DE" // thorn
248
+ "<u,U"
249
+ "<v,V"
250
+ "<w,W"
251
+ "<x,X"
252
+ "<y,Y"
253
+ "<z,Z"
254
+ "&AE,\u00C6" // ae & AE ligature
255
+ "&AE,\u00E6"
256
+ "&OE,\u0152" // oe & OE ligature
257
+ "&OE,\u0153";
258
259
/*
260
* Data for TestPrimary()
261
*/
262
private static final String[] primarySourceData = {
263
"p\u00EAche",
264
"abc",
265
"abc",
266
"abc",
267
"abc",
268
"abc",
269
"a\u00E6c",
270
"acHc",
271
"black"
272
};
273
274
private static final String[] primaryTargetData = {
275
"p\u00E9ch\u00E9",
276
"abc",
277
"aBC",
278
"abch",
279
"abd",
280
"\u00E4bc",
281
"a\u00C6c",
282
"aCHc",
283
"black-bird"
284
};
285
286
private static final int[] primaryResults = {
287
0, 0, 0, -1, -1, 0, 0, 0, -1
288
};
289
290
/*
291
* Data for TestSecondary()
292
*/
293
private static final String[] secondarySourceData = {
294
"four",
295
"five",
296
"1",
297
"abc",
298
"abc",
299
"abcH",
300
"abc",
301
"acHc"
302
};
303
304
private static final String[] secondaryTargetData = {
305
306
"4",
307
"5",
308
"one",
309
"abc",
310
"aBc",
311
"abch",
312
"abd",
313
"aCHc"
314
};
315
316
private static final int[] secondaryResults = {
317
0, 0, 0, 0, 0, 0, -1, 0
318
};
319
320
/*
321
* Data for TestTertiary()
322
*/
323
private static final String[] tertiarySourceData = {
324
"ab'c",
325
"co-op",
326
"ab",
327
"ampersad",
328
"all",
329
"four",
330
"five",
331
"1",
332
"1",
333
"1",
334
"2",
335
"2",
336
"Hello",
337
"a<b",
338
"a<b",
339
"acc",
340
"acHc"
341
};
342
343
private static final String[] tertiaryTargetData = {
344
"abc",
345
"COOP",
346
"abc",
347
"&",
348
"&",
349
"4",
350
"5",
351
"one",
352
"nne",
353
"pne",
354
"two",
355
"uwo",
356
"hellO",
357
"a<=b",
358
"abc",
359
"aCHc",
360
"aCHc"
361
};
362
363
private static final int[] tertiaryResults = {
364
-1, 1, -1, -1, -1, -1, -1, 1, 1, -1,
365
1, -1, 1, 1, -1, -1, -1
366
};
367
368
369
private static final String[] testData = {
370
"a",
371
"A",
372
"\u00e4",
373
"\u00c4",
374
"ae",
375
"aE",
376
"Ae",
377
"AE",
378
"\u00e6",
379
"\u00c6",
380
"b",
381
"c",
382
"z"
383
};
384
385
public void TestPrimary() {
386
doTest(getCollator(), Collator.PRIMARY,
387
primarySourceData, primaryTargetData, primaryResults);
388
}
389
390
public void TestSecondary() {
391
doTest(getCollator(), Collator.SECONDARY,
392
secondarySourceData, secondaryTargetData, secondaryResults);
393
}
394
395
public void TestTertiary() {
396
Collator col = getCollator();
397
398
doTest(col, Collator.TERTIARY,
399
tertiarySourceData, tertiaryTargetData, tertiaryResults);
400
401
for (int i = 0; i < testData.length-1; i++) {
402
for (int j = i+1; j < testData.length; j++) {
403
doTest(col, testData[i], testData[j], -1);
404
}
405
}
406
}
407
408
private RuleBasedCollator myCollation = null;
409
private Collator getCollator() {
410
if (myCollation == null) {
411
try {
412
myCollation = new RuleBasedCollator
413
(DEFAULTRULES + "& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ");
414
} catch (Exception foo) {
415
errln("Collator creation failed.");
416
myCollation = (RuleBasedCollator)Collator.getInstance();
417
}
418
}
419
return myCollation;
420
}
421
}
422
423