]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_8_1_1/main/tests/core/src/com/ibm/icu/dev/test/stringprep/TestData.java
Added flags.
[Dictionary.git] / jars / icu4j-4_8_1_1 / main / tests / core / src / com / ibm / icu / dev / test / stringprep / TestData.java
1 /*
2  *******************************************************************************
3  * Copyright (C) 2003-2006, International Business Machines Corporation and    *
4  * others. All Rights Reserved.                                                *
5  *******************************************************************************
6 */
7 package com.ibm.icu.dev.test.stringprep;
8
9 import com.ibm.icu.text.IDNA;
10 import com.ibm.icu.text.StringPrepParseException;
11
12 /**
13  * @author ram
14  *
15  * To change the template for this generated type comment go to
16  * Window>Preferences>Java>Code Generation>Code and Comments
17  */
18 public class TestData {
19     public static final char[][] unicodeIn ={
20         { 
21             0x0644, 0x064A, 0x0647, 0x0645, 0x0627, 0x0628, 0x062A, 0x0643, 0x0644,
22             0x0645, 0x0648, 0x0634, 0x0639, 0x0631, 0x0628, 0x064A, 0x061F
23         },
24         {
25             0x4ED6, 0x4EEC, 0x4E3A, 0x4EC0, 0x4E48, 0x4E0D, 0x8BF4, 0x4E2D, 0x6587, 
26            
27         },
28         {
29             0x0050, 0x0072, 0x006F, 0x010D, 0x0070, 0x0072, 0x006F, 0x0073, 0x0074,
30             0x011B, 0x006E, 0x0065, 0x006D, 0x006C, 0x0075, 0x0076, 0x00ED, 0x010D,
31             0x0065, 0x0073, 0x006B, 0x0079,
32         },
33         {
34             0x05DC, 0x05DE, 0x05D4, 0x05D4, 0x05DD, 0x05E4, 0x05E9, 0x05D5, 0x05D8,
35             0x05DC, 0x05D0, 0x05DE, 0x05D3, 0x05D1, 0x05E8, 0x05D9, 0x05DD, 0x05E2,
36             0x05D1, 0x05E8, 0x05D9, 0x05EA,
37         },
38         {
39             0x092F, 0x0939, 0x0932, 0x094B, 0x0917, 0x0939, 0x093F, 0x0928, 0x094D,
40             0x0926, 0x0940, 0x0915, 0x094D, 0x092F, 0x094B, 0x0902, 0x0928, 0x0939,
41             0x0940, 0x0902, 0x092C, 0x094B, 0x0932, 0x0938, 0x0915, 0x0924, 0x0947,
42             0x0939, 0x0948, 0x0902,
43         },
44         {
45             0x306A, 0x305C, 0x307F, 0x3093, 0x306A, 0x65E5, 0x672C, 0x8A9E, 0x3092,
46             0x8A71, 0x3057, 0x3066, 0x304F, 0x308C, 0x306A, 0x3044, 0x306E, 0x304B,
47            
48         },
49     /*  
50         {
51             0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
52             0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74,
53             0xC5BC, 0xB9C8, 0xB098, 0xC88B, 0xC744, 0xAE4C,
54         },
55     */
56         {   
57             0x043F, 0x043E, 0x0447, 0x0435, 0x043C, 0x0443, 0x0436, 0x0435, 0x043E,
58             0x043D, 0x0438, 0x043D, 0x0435, 0x0433, 0x043E, 0x0432, 0x043E, 0x0440,
59             0x044F, 0x0442, 0x043F, 0x043E, 0x0440, 0x0443, 0x0441, 0x0441, 0x043A,
60             0x0438,
61         },
62         {
63             0x0050, 0x006F, 0x0072, 0x0071, 0x0075, 0x00E9, 0x006E, 0x006F, 0x0070,
64             0x0075, 0x0065, 0x0064, 0x0065, 0x006E, 0x0073, 0x0069, 0x006D, 0x0070,
65             0x006C, 0x0065, 0x006D, 0x0065, 0x006E, 0x0074, 0x0065, 0x0068, 0x0061,
66             0x0062, 0x006C, 0x0061, 0x0072, 0x0065, 0x006E, 0x0045, 0x0073, 0x0070,
67             0x0061, 0x00F1, 0x006F, 0x006C,
68         },
69         {
70             0x4ED6, 0x5011, 0x7232, 0x4EC0, 0x9EBD, 0x4E0D, 0x8AAA, 0x4E2D, 0x6587,
71            
72         },
73         {
74             0x0054, 0x1EA1, 0x0069, 0x0073, 0x0061, 0x006F, 0x0068, 0x1ECD, 0x006B,
75             0x0068, 0x00F4, 0x006E, 0x0067, 0x0074, 0x0068, 0x1EC3, 0x0063, 0x0068,
76             0x1EC9, 0x006E, 0x00F3, 0x0069, 0x0074, 0x0069, 0x1EBF, 0x006E, 0x0067,
77             0x0056, 0x0069, 0x1EC7, 0x0074,
78         },
79         {
80             0x0033, 0x5E74, 0x0042, 0x7D44, 0x91D1, 0x516B, 0x5148, 0x751F,
81         },
82         {
83             0x5B89, 0x5BA4, 0x5948, 0x7F8E, 0x6075, 0x002D, 0x0077, 0x0069, 0x0074,
84             0x0068, 0x002D, 0x0053, 0x0055, 0x0050, 0x0045, 0x0052, 0x002D, 0x004D,
85             0x004F, 0x004E, 0x004B, 0x0045, 0x0059, 0x0053,
86         },
87         {
88             0x0048, 0x0065, 0x006C, 0x006C, 0x006F, 0x002D, 0x0041, 0x006E, 0x006F,
89             0x0074, 0x0068, 0x0065, 0x0072, 0x002D, 0x0057, 0x0061, 0x0079, 0x002D,
90             0x305D, 0x308C, 0x305E, 0x308C, 0x306E, 0x5834, 0x6240,
91         },
92         {
93             0x3072, 0x3068, 0x3064, 0x5C4B, 0x6839, 0x306E, 0x4E0B, 0x0032,
94         },
95         {
96             0x004D, 0x0061, 0x006A, 0x0069, 0x3067, 0x004B, 0x006F, 0x0069, 0x3059,
97             0x308B, 0x0035, 0x79D2, 0x524D,
98         },
99         {
100             0x30D1, 0x30D5, 0x30A3, 0x30FC, 0x0064, 0x0065, 0x30EB, 0x30F3, 0x30D0,
101            
102         },
103         {
104             0x305D, 0x306E, 0x30B9, 0x30D4, 0x30FC, 0x30C9, 0x3067,
105         },
106         // test non-BMP code points
107         {    
108             0xD800, 0xDF00, 0xD800, 0xDF01, 0xD800, 0xDF02, 0xD800, 0xDF03, 0xD800, 0xDF05,
109             0xD800, 0xDF06, 0xD800, 0xDF07, 0xD800, 0xDF09, 0xD800, 0xDF0A, 0xD800, 0xDF0B,
110            
111         },
112         {
113             0xD800, 0xDF0D, 0xD800, 0xDF0C, 0xD800, 0xDF1E, 0xD800, 0xDF0F, 0xD800, 0xDF16,
114             0xD800, 0xDF15, 0xD800, 0xDF14, 0xD800, 0xDF12, 0xD800, 0xDF10, 0xD800, 0xDF20,
115             0xD800, 0xDF21,
116            
117         },
118         // Greek
119         {
120             0x03b5, 0x03bb, 0x03bb, 0x03b7, 0x03bd, 0x03b9, 0x03ba, 0x03ac
121         },
122         // Maltese
123         {
124             0x0062, 0x006f, 0x006e, 0x0121, 0x0075, 0x0073, 0x0061, 0x0127,
125             0x0127, 0x0061
126         },
127         // Russian
128         {
129             0x043f, 0x043e, 0x0447, 0x0435, 0x043c, 0x0443, 0x0436, 0x0435,
130             0x043e, 0x043d, 0x0438, 0x043d, 0x0435, 0x0433, 0x043e, 0x0432,
131             0x043e, 0x0440, 0x044f, 0x0442, 0x043f, 0x043e, 0x0440, 0x0443,
132             0x0441, 0x0441, 0x043a, 0x0438
133         },
134    
135     };
136
137     public static final String[] asciiIn = {
138         "xn--egbpdaj6bu4bxfgehfvwxn",
139         "xn--ihqwcrb4cv8a8dqg056pqjye",
140         "xn--Proprostnemluvesky-uyb24dma41a",
141         "xn--4dbcagdahymbxekheh6e0a7fei0b",
142         "xn--i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd",
143         "xn--n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa",
144     /*  "xn--989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5jpsd879ccm6fea98c",*/
145         "xn--b1abfaaepdrnnbgefbaDotcwatmq2g4l",
146         "xn--PorqunopuedensimplementehablarenEspaol-fmd56a",
147         "xn--ihqwctvzc91f659drss3x8bo0yb",
148         "xn--TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g",
149         "xn--3B-ww4c5e180e575a65lsy2b",
150         "xn---with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n",
151         "xn--Hello-Another-Way--fc4qua05auwb3674vfr0b",
152         "xn--2-u9tlzr9756bt3uc0v",
153         "xn--MajiKoi5-783gue6qz075azm5e",
154         "xn--de-jg4avhby1noc0d",
155         "xn--d9juau41awczczp",
156         "XN--097CCDEKGHQJK",
157         "XN--db8CBHEJLGH4E0AL",
158         "xn--hxargifdar",                       // Greek
159         "xn--bonusaa-5bb1da",                   // Maltese
160         "xn--b1abfaaepdrnnbgefbadotcwatmq2g4l", // Russian (Cyrillic)
161        };
162
163     public static final String[] domainNames = {
164         "slip129-37-118-146.nc.us.ibm.net",
165         "saratoga.pe.utexas.edu",
166         "dial-120-45.ots.utexas.edu",
167         "woo-085.dorms.waller.net",
168         "hd30-049.hil.compuserve.com",
169         "pem203-31.pe.ttu.edu",
170         "56K-227.MaxTNT3.pdq.net",
171         "dial-36-2.ots.utexas.edu",
172         "slip129-37-23-152.ga.us.ibm.net",
173         "ts45ip119.cadvision.com",
174         "sdn-ts-004txaustP05.dialsprint.net",
175         "bar-tnt1s66.erols.com",
176         "101.st-louis-15.mo.dial-access.att.net",
177         "h92-245.Arco.COM",
178         "dial-13-2.ots.utexas.edu",
179         "net-redynet29.datamarkets.com.ar",
180         "ccs-shiva28.reacciun.net.ve",
181         "7.houston-11.tx.dial-access.att.net",
182         "ingw129-37-120-26.mo.us.ibm.net",
183         "dialup6.austintx.com",
184         "dns2.tpao.gov.tr",
185         "slip129-37-119-194.nc.us.ibm.net",
186         "cs7.dillons.co.uk.203.119.193.in-addr.arpa",
187         "swprd1.innovplace.saskatoon.sk.ca",
188         "bikini.bologna.maraut.it",
189         "node91.subnet159-198-79.baxter.com",
190         "cust19.max5.new-york.ny.ms.uu.net",
191         "balexander.slip.andrew.cmu.edu",
192         "pool029.max2.denver.co.dynip.alter.net",
193         "cust49.max9.new-york.ny.ms.uu.net",
194         "s61.abq-dialin2.hollyberry.com",
195
196     };
197     
198     public static final String[] domainNames1Uni = {
199         "\u0917\u0928\u0947\u0936.sanjose.ibm.com",
200         "www.\u0121.com",
201         //"www.\u00E0\u00B3\u00AF.com",
202         "www.\u00C2\u00A4.com",
203         "www.\u00C2\u00A3.com",
204         // "\\u0025", //'%' (0x0025) produces U_IDNA_STD3_ASCII_RULES_ERROR
205         // "\\u005C\\u005C", //'\' (0x005C) produces U_IDNA_STD3_ASCII_RULES_ERROR
206         //"@",
207         //"\\u002F",
208         //"www.\\u0021.com",
209         //"www.\\u0024.com",
210         //"\\u003f",
211         // These yeild U_IDNA_PROHIBITED_ERROR
212         //"\\u00CF\\u0082.com",
213         //"\\u00CE\\u00B2\\u00C3\\u009Fss.com",
214         //"\\u00E2\\u0098\\u00BA.com",
215         "\u00C3\u00BC.com"
216     };
217     public static final String[] domainNamesToASCIIOut = {
218         "xn--31b8a2bwd.sanjose.ibm.com",
219         "www.xn--vea.com",
220         //"www.xn--3 -iia80t.com",
221         "www.xn--bba7j.com",
222         "www.xn--9a9j.com",
223        // "\u0025",
224        // "\u005C\u005C",
225        // "@",
226        // "\u002F",
227        // "www.\u0021.com",
228        // "www.\u0024.com",
229        // "\u003f",
230         "xn--14-ria7423a.com"
231         
232     };
233
234     public static final String[] domainNamesToUnicodeOut = {
235         "\u0917\u0928\u0947\u0936.sanjose.ibm.com",
236         "www.\u0121.com",
237         //"www.\u00E0\u0033\u0020\u0304.com",
238         "www.\u00E2\u00A4.com",
239         "www.\u00E2\u00A3.com",
240        // "\u0025",
241        // "\u005C\u005C",
242        // "@",
243        // "\u002F",
244        // "www.\u0021.com",
245        // "www.\u0024.com",
246        // "\u003f",
247         "\u00E3\u0031\u2044\u0034.com"
248         
249     };
250
251
252     public static class ErrorCase{
253
254         public char[] unicode;
255         public String ascii;
256         public Exception expected;
257         public boolean useSTD3ASCIIRules;
258         public boolean testToUnicode;
259         public boolean testLabel;
260         ErrorCase(char[] uniIn, String asciiIn, Exception ex,
261                    boolean std3, boolean testToUni, boolean testlabel){
262             unicode = uniIn;
263             ascii = asciiIn;
264             expected = ex;
265             useSTD3ASCIIRules = std3;
266             testToUnicode = testToUni;
267             testLabel = testlabel; 
268             
269         }
270     }
271     public static final ErrorCase[] errorCases = {
272           
273         
274         new ErrorCase( new char[]{ 
275             0x0077, 0x0077, 0x0077, 0x002e, /* www. */
276             0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
277             0x070F,/*prohibited*/
278             0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74,
279             0x002e, 0x0063, 0x006f, 0x006d, /* com. */
280            
281         },
282         "www.xn--8mb5595fsoa28orucya378bqre2tcwop06c5qbw82a1rffmae0361dea96b.com",
283         new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR),
284         false, true, true),
285
286         new ErrorCase( new char[]{ 
287                 0x0077, 0x0077, 0x0077, 0x002e, /* www. */
288                 0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
289                 0x0221, 0x0234/*Unassigned code points*/,
290                 0x002e, 0x0063, 0x006f, 0x006d, /* com. */
291                
292             },
293             "www.xn--6la2bz548fj1gua391bf1gb1n59ab29a7ia.com",
294
295             new StringPrepParseException("",StringPrepParseException.UNASSIGNED_ERROR),
296             false, true, true
297         ),
298        new ErrorCase( new char[]{ 
299                 0x0077, 0x0077, 0x0077, 0x002e, /* www. */
300                 0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
301                 0x0644, 0x064A, 0x0647,/*Arabic code points. Cannot mix RTL with LTR*/
302                 0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74,
303                 0x002e, 0x0063, 0x006f, 0x006d, /* com. */
304                
305             },
306             "www.xn--ghBGI4851OiyA33VqrD6Az86C4qF83CtRv93D5xBk15AzfG0nAgA0578DeA71C.com",
307             new StringPrepParseException("",StringPrepParseException.CHECK_BIDI_ERROR),
308             false, true, true
309         ),
310         new ErrorCase( new char[]{ 
311                 0x0077, 0x0077, 0x0077, 0x002e, /* www. */
312                 /* labels cannot begin with an HYPHEN */
313                 0x002D, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
314                 0x002E, 
315                 0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74,
316                 0x002e, 0x0063, 0x006f, 0x006d, /* com. */
317                
318             
319             },
320             "www.xn----b95Ew8SqA315Ao5FbuMlnNmhA.com",
321             new StringPrepParseException("",StringPrepParseException.STD3_ASCII_RULES_ERROR),
322             true, true, false
323         ),
324         new ErrorCase( new char[]{ 
325                 /* correct ACE-prefix followed by unicode */
326                 0x0077, 0x0077, 0x0077, 0x002e, /* www. */
327                 0x0078, 0x006e, 0x002d,0x002d,  /* ACE Prefix */
328                 0x002D, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
329                 0x002D, 
330                 0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74,
331                 0x002e, 0x0063, 0x006f, 0x006d, /* com. */
332                
333             
334             },
335             /* wrong ACE-prefix followed by valid ACE-encoded ASCII */ 
336             "www.XY-----b91I0V65S96C2A355Cw1E5yCeQr19CsnP1mFfmAE0361DeA96B.com",
337             new StringPrepParseException("",StringPrepParseException.ACE_PREFIX_ERROR),
338             false, false, false
339         ),
340         /* cannot verify U_IDNA_VERIFICATION_ERROR */
341
342         new ErrorCase( new char[]{
343             0x0077, 0x0077, 0x0077, 0x002e, /* www. */
344             0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774,
345             0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74,
346             0xC5BC, 0xB9C8, 0xB098, 0xC88B, 0xC744, 0xAE4C, 
347             0x002e, 0x0063, 0x006f, 0x006d, /* com. */
348            
349           },
350           "www.xn--989AoMsVi5E83Db1D2A355Cv1E0vAk1DwRv93D5xBh15A0Dt30A5JpSD879Ccm6FeA98C.com",
351           new StringPrepParseException("",StringPrepParseException.LABEL_TOO_LONG_ERROR),
352           false, true, true
353         ),  
354         new ErrorCase( new char[]{
355             0x0077, 0x0077, 0x0077, 0x002e, /* www. */
356             0x0030, 0x0644, 0x064A, 0x0647, 0x0031, /* Arabic code points squashed between EN codepoints */
357             0x002e, 0x0063, 0x006f, 0x006d, /* com. */
358            
359           },
360           "www.xn--01-tvdmo.com",
361           new StringPrepParseException("",StringPrepParseException.CHECK_BIDI_ERROR),
362           false, true, true
363         ),  
364     
365         new ErrorCase( new char[]{
366             0x0077, 0x0077, 0x0077, 0x002e, // www. 
367             0x206C, 0x0644, 0x064A, 0x0647, 0x206D, // Arabic code points squashed between BN codepoints 
368             0x002e, 0x0063, 0x006f, 0x006d, // com. 
369            
370           },
371           "www.XN--ghbgi278xia.com",
372           new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR),
373           false, true, true
374         ),
375         new ErrorCase( new char[] {
376             0x0077, 0x0077, 0x0077, 0x002e, // www. 
377             0x002D, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, // HYPHEN at the start of label 
378             0x002e, 0x0063, 0x006f, 0x006d, // com. 
379            
380           },
381           "www.-abcde.com",
382           new StringPrepParseException("",StringPrepParseException.STD3_ASCII_RULES_ERROR),
383           true, true, false
384         ),
385         new ErrorCase( new char[] {
386             0x0077, 0x0077, 0x0077, 0x002e, // www. 
387             0x0041, 0x0042, 0x0043, 0x0044, 0x0045,0x002D, // HYPHEN at the end of the label
388             0x002e, 0x0063, 0x006f, 0x006d, // com. 
389            
390           },
391           "www.abcde-.com",
392           new StringPrepParseException("",StringPrepParseException.STD3_ASCII_RULES_ERROR),
393           true, true, false
394         ),
395         new ErrorCase( new char[]{
396             0x0077, 0x0077, 0x0077, 0x002e, // www. 
397             0x0041, 0x0042, 0x0043, 0x0044, 0x0045,0x0040, // Containing non LDH code point
398             0x002e, 0x0063, 0x006f, 0x006d, // com. 
399            
400           },
401           "www.abcde@.com",
402           new StringPrepParseException("",StringPrepParseException.STD3_ASCII_RULES_ERROR),
403           true, true, false
404         ),
405         new ErrorCase( new char[]{
406             0x0077, 0x0077, 0x0077, 0x002e, // www. 
407              // zero length label
408             0x002e, 0x0063, 0x006f, 0x006d, // com. 
409           },
410           "www..com",
411           new StringPrepParseException("",StringPrepParseException.ZERO_LENGTH_LABEL),
412           true, true, false
413         ),
414     };
415
416
417      public static final class ConformanceTestCase{
418          String comment;
419          String input;
420          String output;
421          String profile;
422          int flags;
423          Exception expected;
424          private static byte[] getBytes(String in){
425              if(in==null){
426                  return null;
427              }
428              byte[] bytes = new byte[in.length()];
429              for(int i=0; i < in.length();i++){
430                  bytes[i] = (byte)in.charAt(i);
431              }
432              return bytes;
433          }
434          ConformanceTestCase(String comt, String in, String out,
435                               String prof, int flg, Exception ex)
436                               {
437                                   
438              try{
439                  comment = comt;
440                  byte[] bytes = getBytes(in);
441                  input = new String(bytes,"UTF-8");
442                  bytes = getBytes(out);
443                  output = (bytes==null)? null : new String(bytes,"UTF-8");
444                  profile = prof;
445                  flags = flg;
446                  expected = ex;
447              }catch (Exception e){
448                  e.printStackTrace();
449                  throw new RuntimeException();
450              }
451          }
452        }
453        
454        public static final ConformanceTestCase[] conformanceTestCases =
455        {
456   
457          new ConformanceTestCase(
458            "Case folding ASCII U+0043 U+0041 U+0046 U+0045",
459            "\u0043\u0041\u0046\u0045", "\u0063\u0061\u0066\u0065",
460            "Nameprep", IDNA.DEFAULT, 
461            null
462
463          ),
464          new ConformanceTestCase(
465            "Case folding 8bit U+00DF (german sharp s)",
466            "\u00C3\u009F", "\u0073\u0073", 
467            "Nameprep", IDNA.DEFAULT, 
468            null
469          ),
470          new ConformanceTestCase(
471            "Non-ASCII multibyte space character U+1680",
472            "\u00E1\u009A\u0080", null, 
473            "Nameprep", IDNA.DEFAULT,
474            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
475          ),
476          new ConformanceTestCase(
477            "Non-ASCII 8bit control character U+0085",
478            "\u00C2\u0085", null, 
479            "Nameprep", IDNA.DEFAULT,
480            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
481          ),
482          new ConformanceTestCase(
483            "Non-ASCII multibyte control character U+180E",
484            "\u00E1\u00A0\u008E", null, 
485            "Nameprep", IDNA.DEFAULT,
486            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
487          ),
488          new ConformanceTestCase(
489            "Non-ASCII control character U+1D175",
490            "\u00F0\u009D\u0085\u00B5", null, 
491            "Nameprep", IDNA.DEFAULT,
492            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
493          ),
494          new ConformanceTestCase(
495            "Plane 0 private use character U+F123",
496            "\u00EF\u0084\u00A3", null, 
497            "Nameprep", IDNA.DEFAULT,
498            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
499          ),
500          new ConformanceTestCase(
501            "Plane 15 private use character U+F1234",
502            "\u00F3\u00B1\u0088\u00B4", null, 
503            "Nameprep", IDNA.DEFAULT,
504            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
505          ),
506          new ConformanceTestCase(
507            "Plane 16 private use character U+10F234",
508            "\u00F4\u008F\u0088\u00B4", null, 
509            "Nameprep", IDNA.DEFAULT,
510            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
511          ),
512          new ConformanceTestCase(
513            "Non-character code point U+8FFFE",
514            "\u00F2\u008F\u00BF\u00BE", null, 
515            "Nameprep", IDNA.DEFAULT,
516            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
517          ),
518          new ConformanceTestCase(
519            "Non-character code point U+10FFFF",
520            "\u00F4\u008F\u00BF\u00BF", null,
521            "Nameprep", IDNA.DEFAULT,
522            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
523          ),
524      /* 
525          {
526            "Surrogate code U+DF42",
527            "\u00ED\u00BD\u0082", null, "Nameprep", InternationalizedDomainNames.DEFAULT,
528            U_IDNA_PROHIBITED_ERROR
529          },
530     */
531          new ConformanceTestCase(
532            "Non-plain text character U+FFFD",
533            "\u00EF\u00BF\u00BD", null, 
534            "Nameprep", IDNA.DEFAULT,
535            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
536          ),
537          new ConformanceTestCase(
538            "Ideographic description character U+2FF5",
539            "\u00E2\u00BF\u00B5", null, 
540            "Nameprep", IDNA.DEFAULT,
541            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
542          ),
543          new ConformanceTestCase(
544            "Display property character U+0341",
545            "\u00CD\u0081", "\u00CC\u0081",
546            "Nameprep", IDNA.DEFAULT, 
547            null
548
549          ),
550
551          new ConformanceTestCase(
552            "Left-to-right mark U+200E",
553            "\u00E2\u0080\u008E", "\u00CC\u0081", 
554            "Nameprep", IDNA.DEFAULT,
555            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
556          ),
557          new ConformanceTestCase(
558
559            "Deprecated U+202A",
560            "\u00E2\u0080\u00AA", "\u00CC\u0081", 
561            "Nameprep", IDNA.DEFAULT,
562            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
563          ),
564          new ConformanceTestCase(
565            "Language tagging character U+E0001",
566            "\u00F3\u00A0\u0080\u0081", "\u00CC\u0081", 
567            "Nameprep", IDNA.DEFAULT,
568            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
569          ),
570          new ConformanceTestCase(
571            "Language tagging character U+E0042",
572            "\u00F3\u00A0\u0081\u0082", null, 
573            "Nameprep", IDNA.DEFAULT,
574            new StringPrepParseException("",StringPrepParseException.PROHIBITED_ERROR)
575          ),
576          new ConformanceTestCase(
577            "Bidi: RandALCat character U+05BE and LCat characters",
578            "\u0066\u006F\u006F\u00D6\u00BE\u0062\u0061\u0072", null, 
579            "Nameprep", IDNA.DEFAULT,
580            new StringPrepParseException("",StringPrepParseException.CHECK_BIDI_ERROR)
581          ),
582          new ConformanceTestCase(
583            "Bidi: RandALCat character U+FD50 and LCat characters",
584            "\u0066\u006F\u006F\u00EF\u00B5\u0090\u0062\u0061\u0072", null,
585            "Nameprep",IDNA.DEFAULT ,
586            new StringPrepParseException("",StringPrepParseException.CHECK_BIDI_ERROR)
587          ),
588          new ConformanceTestCase(
589            "Bidi: RandALCat character U+FB38 and LCat characters",
590            "\u0066\u006F\u006F\u00EF\u00B9\u00B6\u0062\u0061\u0072", "\u0066\u006F\u006F \u00d9\u008e\u0062\u0061\u0072",
591            "Nameprep", IDNA.DEFAULT,
592            null
593          ),
594          new ConformanceTestCase(
595            "Bidi: RandALCat without trailing RandALCat U+0627 U+0031",
596            "\u00D8\u00A7\u0031", null, 
597            "Nameprep", IDNA.DEFAULT,
598            new StringPrepParseException("",StringPrepParseException.CHECK_BIDI_ERROR)
599          ),
600          new ConformanceTestCase(
601            "Bidi: RandALCat character U+0627 U+0031 U+0628",
602            "\u00D8\u00A7\u0031\u00D8\u00A8", "\u00D8\u00A7\u0031\u00D8\u00A8",
603            "Nameprep", IDNA.DEFAULT,
604            null
605          ),
606          new ConformanceTestCase(
607            "Unassigned code point U+E0002",
608            "\u00F3\u00A0\u0080\u0082", null, 
609            "Nameprep", IDNA.DEFAULT,
610            new StringPrepParseException("",StringPrepParseException.UNASSIGNED_ERROR)
611          ),
612
613     /*  // Invalid UTF-8
614          {
615            "Larger test (shrinking)",
616            "X\u00C2\u00AD\u00C3\u00DF\u00C4\u00B0\u00E2\u0084\u00A1\u006a\u00cc\u008c\u00c2\u00a0\u00c2"
617            "\u00aa\u00ce\u00b0\u00e2\u0080\u0080", "xssi\u00cc\u0087""tel\u00c7\u00b0 a\u00ce\u00b0 ",
618            "Nameprep",
619            InternationalizedDomainNames.DEFAULT, U_ZERO_ERROR
620          },
621         {
622
623            "Larger test (expanding)",
624            "X\u00C3\u00DF\u00e3\u008c\u0096\u00C4\u00B0\u00E2\u0084\u00A1\u00E2\u0092\u009F\u00E3\u008c\u0080",
625            "xss\u00e3\u0082\u00ad\u00e3\u0083\u00ad\u00e3\u0083\u00a1\u00e3\u0083\u00bc\u00e3\u0083\u0088"
626            "\u00e3\u0083\u00ab""i\u00cc\u0087""tel\u0028""d\u0029\u00e3\u0082\u00a2\u00e3\u0083\u0091"
627            "\u00e3\u0083\u00bc\u00e3\u0083\u0088"
628            "Nameprep",
629            InternationalizedDomainNames.DEFAULT, U_ZERO_ERROR
630          },
631       */
632     };
633 }