]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_2_1-src/src/com/ibm/icu/dev/test/format/DateIntervalFormatTest.java
icu4jsrc
[Dictionary.git] / jars / icu4j-4_2_1-src / src / com / ibm / icu / dev / test / format / DateIntervalFormatTest.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 2001-2009, International Business Machines Corporation and    *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  */\r
7 \r
8 /** \r
9  * Port From:   ICU4C v1.8.1 : format : DateIntervalFormatTest\r
10  * Source File: $ICU4CRoot/source/test/intltest/dtifmtts.cpp\r
11  **/\r
12 \r
13 package com.ibm.icu.dev.test.format;\r
14 \r
15 import java.text.FieldPosition;\r
16 import java.text.ParseException;\r
17 import java.util.Date;\r
18 import java.util.Locale;\r
19 \r
20 import com.ibm.icu.impl.Utility;\r
21 import com.ibm.icu.text.DateFormat;\r
22 import com.ibm.icu.text.DateIntervalFormat;\r
23 import com.ibm.icu.text.DateIntervalInfo;\r
24 import com.ibm.icu.text.SimpleDateFormat;\r
25 import com.ibm.icu.util.Calendar;\r
26 import com.ibm.icu.util.DateInterval;\r
27 import com.ibm.icu.util.ULocale;\r
28 \r
29 public class DateIntervalFormatTest extends com.ibm.icu.dev.test.TestFmwk {\r
30 \r
31     public static void main(String[] args) throws Exception {\r
32         new DateIntervalFormatTest().run(args);\r
33     }\r
34 \r
35 \r
36     /**\r
37      * Test format\r
38      */\r
39     public void testFormat() {\r
40         // first item is date pattern\r
41         // followed by a group of locale/from_data/to_data/skeleton/interval_data\r
42         String[] DATA = {\r
43             "yyyy MM dd HH:mm:ss",    \r
44             // test root\r
45             "root", "2007 11 10 10:10:10", "2007 12 10 10:10:10", "yM", "2007-11 \\u2013 12",\r
46          \r
47             // test 'H' and 'h', using availableFormat in fallback\r
48             "en", "2007 11 10 10:10:10", "2007 11 10 15:10:10", "Hms", "10:10:10 \\u2013 15:10:10",\r
49             "en", "2007 11 10 10:10:10", "2007 11 10 15:10:10", "hms", "10:10:10 AM \\u2013 3:10:10 PM",\r
50 \r
51             // test skeleton with both date and time\r
52             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMyhm", "Nov 10, 2007 10:10 AM \\u2013 Nov 20, 2007 10:10 AM", \r
53             \r
54             "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "dMMMyhm", "Nov 10, 2007 10:10\\u201311:10 AM", \r
55             \r
56             "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "hms", "10:10:10 AM \\u2013 11:10:10 AM", \r
57             \r
58             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMMy", "Wednesday, October 10, 2007 \\u2013 Friday, October 10, 2008", \r
59             \r
60             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMMy", "October 10, 2007 \\u2013 October 10, 2008", \r
61             \r
62             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMM", "October 10, 2007 \\u2013 October 10, 2008", \r
63             \r
64             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMMy", "October 2007 \\u2013 October 2008", \r
65             \r
66             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMM", "Wednesday, October 10, 2007 \\u2013 Friday, October 10, 2008", \r
67             \r
68             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMMMy", "Wed, Oct 10, 2007 \\u2013 Fri, Oct 10, 2008", \r
69             \r
70             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMy", "Oct 10, 2007 \\u2013 Oct 10, 2008", \r
71             \r
72             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMM", "Oct 10, 2007 \\u2013 Oct 10, 2008", \r
73             \r
74             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMy", "Oct 2007 \\u2013 Oct 2008", \r
75             \r
76             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMMM", "Wed, Oct 10, 2007 \\u2013 Fri, Oct 10, 2008", \r
77             \r
78             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08", \r
79             \r
80             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMy", "10/10/07 \\u2013 10/10/08", \r
81             \r
82             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dM", "10/10/07 \\u2013 10/10/08", \r
83             \r
84             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "My", "10/07 \\u2013 10/08", \r
85             \r
86             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdM", "Wed, 10/10/07 \\u2013 Fri, 10/10/08", \r
87             \r
88             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "d", "10/10/07 \\u2013 10/10/08", \r
89             \r
90             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Ed", "10 Wed \\u2013 10 Fri", \r
91             \r
92             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "y", "2007\\u20132008", \r
93             \r
94             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "M", "10/07 \\u2013 10/08", \r
95             \r
96             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMM", "Oct 2007 \\u2013 Oct 2008", \r
97             \r
98             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMM", "October 2007 \\u2013 October 2008", \r
99             \r
100             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hm", "10/10/2007 10:10 AM \\u2013 10/10/2008 10:10 AM", \r
101             \r
102             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hmv", "10/10/2007 10:10 AM PT \\u2013 10/10/2008 10:10 AM PT", \r
103             \r
104             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hmz", "10/10/2007 10:10 AM PDT \\u2013 10/10/2008 10:10 AM PDT", \r
105             \r
106             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "h", "10/10/2007 10 \\u2013 10/10/2008 10", \r
107             \r
108             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hv", "10/10/2007 PT (Hour: 10) \\u2013 10/10/2008 PT (Hour: 10)", \r
109             \r
110             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hz", "10/10/2007 PDT (Hour: 10) \\u2013 10/10/2008 PDT (Hour: 10)", \r
111             \r
112             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEddMMyyyy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08", \r
113             \r
114             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EddMMy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08", \r
115             \r
116             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hhmm", "10/10/2007 10:10 AM \\u2013 10/10/2008 10:10 AM", \r
117             \r
118             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hhmmzz", "10/10/2007 10:10 AM PDT \\u2013 10/10/2008 10:10 AM PDT", \r
119             \r
120             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hms", "10/10/2007 10:10:10 AM \\u2013 10/10/2008 10:10:10 AM", \r
121             \r
122             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMMMy", "O 10, 2007 \\u2013 O 10, 2008", \r
123             \r
124             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEEdM", "W, 10/10/07 \\u2013 F, 10/10/08", \r
125             \r
126             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMMy", "Wednesday, October 10 \\u2013 Saturday, November 10, 2007", \r
127             \r
128             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMy", "October 10 \\u2013 November 10, 2007", \r
129             \r
130             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMM", "October 10 \\u2013 November 10", \r
131             \r
132             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMMy", "October\\u2013November 2007", \r
133             \r
134             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMM", "Wednesday, October 10 \\u2013 Saturday, November 10", \r
135             \r
136             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMMMy", "Wed, Oct 10 \\u2013 Sat, Nov 10, 2007", \r
137             \r
138             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMy", "Oct 10 \\u2013 Nov 10, 2007", \r
139             \r
140             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMM", "Oct 10 \\u2013 Nov 10", \r
141             \r
142             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMy", "Oct\\u2013Nov 2007", \r
143             \r
144             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMMM", "Wed, Oct 10 \\u2013 Sat, Nov 10", \r
145             \r
146             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07", \r
147             \r
148             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMy", "10/10/07 \\u2013 11/10/07", \r
149             \r
150             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dM", "10/10 \\u2013 11/10", \r
151             \r
152             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "My", "10/07 \\u2013 11/07", \r
153             \r
154             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdM", "Wed, 10/10 \\u2013 Sat, 11/10", \r
155             \r
156             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "d", "10/10 \\u2013 11/10", \r
157             \r
158             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "Ed", "10 Wed \\u2013 10 Sat", \r
159             \r
160             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "y", "2007", \r
161             \r
162             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "M", "10\\u201311", \r
163             \r
164             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMM", "Oct\\u2013Nov", \r
165             \r
166             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMM", "October-November", \r
167             \r
168             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hm", "10/10/2007 10:10 AM \\u2013 11/10/2007 10:10 AM", \r
169             \r
170             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hmv", "10/10/2007 10:10 AM PT \\u2013 11/10/2007 10:10 AM PT", \r
171             \r
172             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hmz", "10/10/2007 10:10 AM PDT \\u2013 11/10/2007 10:10 AM PST", \r
173             \r
174             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "h", "10/10/2007 10 \\u2013 11/10/2007 10", \r
175             \r
176             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hv", "10/10/2007 PT (Hour: 10) \\u2013 11/10/2007 PT (Hour: 10)", \r
177             \r
178             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hz", "10/10/2007 PDT (Hour: 10) \\u2013 11/10/2007 PST (Hour: 10)", \r
179             \r
180             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEddMMyyyy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07", \r
181             \r
182             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EddMMy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07", \r
183             \r
184             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hhmm", "10/10/2007 10:10 AM \\u2013 11/10/2007 10:10 AM", \r
185             \r
186             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hhmmzz", "10/10/2007 10:10 AM PDT \\u2013 11/10/2007 10:10 AM PST", \r
187             \r
188             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hms", "10/10/2007 10:10:10 AM \\u2013 11/10/2007 10:10:10 AM", \r
189             \r
190             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMMy", "O 10 \\u2013 N 10, 2007", \r
191             \r
192             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEEdM", "W, 10/10 \\u2013 S, 11/10", \r
193             \r
194             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMMy", "Saturday, November 10 \\u2013 Tuesday, November 20, 2007", \r
195             \r
196             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMy", "November 10\\u201320, 2007", \r
197             \r
198             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMM", "November 10\\u201320", \r
199             \r
200             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMMy", "November 2007", \r
201             \r
202             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMM", "Saturday, November 10 \\u2013 Tuesday, November 20", \r
203             \r
204             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMMy", "Sat, Nov 10 \\u2013 Tue, Nov 20, 2007", \r
205             \r
206             \r
207             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMM", "Nov 10\\u201320", \r
208             \r
209             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMy", "Nov 2007", \r
210             \r
211             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMM", "Sat, Nov 10 \\u2013 Tue, Nov 20", \r
212             \r
213             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07", \r
214             \r
215             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "11/10/07 \\u2013 11/20/07", \r
216             \r
217             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "11/10 \\u2013 11/20", \r
218             \r
219             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "11/2007", \r
220             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "Sat, 11/10 \\u2013 Tue, 11/20", \r
221             \r
222             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10\\u201320", \r
223             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Ed", "10 Sat \\u2013 20 Tue", \r
224             \r
225             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11", \r
226             \r
227             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMM", "Nov", \r
228             \r
229             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hm", "11/10/2007 10:10 AM \\u2013 11/20/2007 10:10 AM", \r
230             \r
231             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hmv", "11/10/2007 10:10 AM PT \\u2013 11/20/2007 10:10 AM PT", \r
232             \r
233             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hmz", "11/10/2007 10:10 AM PST \\u2013 11/20/2007 10:10 AM PST", \r
234             \r
235             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hz", "11/10/2007 PST (Hour: 10) \\u2013 11/20/2007 PST (Hour: 10)", \r
236             \r
237             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEddMMyyyy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07", \r
238             \r
239             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EddMMy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07", \r
240             \r
241             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hhmm", "11/10/2007 10:10 AM \\u2013 11/20/2007 10:10 AM", \r
242             \r
243             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hms", "11/10/2007 10:10:10 AM \\u2013 11/20/2007 10:10:10 AM", \r
244             \r
245             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMMy", "N 10\\u201320, 2007", \r
246             \r
247             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEEdM", "S, 11/10 \\u2013 T, 11/20", \r
248             \r
249             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMMy", "Wednesday, January 10, 2007", \r
250             \r
251             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMMy", "January 10, 2007", \r
252             \r
253             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMM", "January 10", \r
254             \r
255             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMMy", "January 2007", \r
256             \r
257             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMM", "Wednesday, January 10", \r
258             \r
259             \r
260             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMy", "Jan 10, 2007", \r
261             \r
262             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMM", "Jan 10", \r
263             \r
264             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMy", "Jan 2007", \r
265             \r
266             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdMMM", "Wed, Jan 10", \r
267             \r
268             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdMy", "Wed, 1/10/2007", \r
269             \r
270             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMy", "1/10/2007", \r
271             \r
272             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dM", "1/10", \r
273             \r
274             \r
275             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdM", "Wed, 1/10", \r
276             \r
277             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "d", "10", \r
278             \r
279             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Ed", "10 Wed", \r
280             \r
281             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "y", "2007", \r
282             \r
283             \r
284             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMM", "Jan", \r
285             \r
286             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMM", "January", \r
287             \r
288             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hm", "10:00 AM \\u2013 2:10 PM", \r
289             \r
290             \r
291             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmz", "10:00 AM \\u2013 2:10 PM PST", \r
292             \r
293             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10 AM \\u2013 2 PM", \r
294             \r
295             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hv", "10 AM \\u2013 2 PM PT", \r
296             \r
297             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hz", "10 AM \\u2013 2 PM PST", \r
298             \r
299             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEddMMyyyy", "Wed, 01/10/2007", \r
300             \r
301             \r
302             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hhmm", "10:00 AM \\u2013 2:10 PM", \r
303             \r
304             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hhmmzz", "10:00 AM \\u2013 2:10 PM PST", \r
305             \r
306             \r
307             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMMMy", "J 10, 2007", \r
308             \r
309             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEEdM", "W, 1/10", \r
310             \r
311             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EEEEdMMMMy", "Wednesday, January 10, 2007", \r
312             \r
313             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMMy", "January 10, 2007", \r
314             \r
315             \r
316             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "MMMMy", "January 2007", \r
317             \r
318             \r
319             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMMMy", "Wed, Jan 10, 2007", \r
320             \r
321             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMy", "Jan 10, 2007", \r
322             \r
323             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMM", "Jan 10", \r
324             \r
325             \r
326             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMMM", "Wed, Jan 10", \r
327             \r
328             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMy", "Wed, 1/10/2007", \r
329             \r
330             \r
331             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dM", "1/10", \r
332             \r
333             \r
334             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdM", "Wed, 1/10", \r
335             \r
336             \r
337             \r
338             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "y", "2007", \r
339             \r
340             \r
341             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "MMM", "Jan", \r
342             \r
343             \r
344             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "10:00\\u201310:20 AM", \r
345             \r
346             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "10:00\\u201310:20 AM PT", \r
347             \r
348             \r
349             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10", \r
350             \r
351             \r
352             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "PST (Hour: 10)", \r
353             \r
354             \r
355             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EddMMy", "Wed, 01/10/2007", \r
356             \r
357             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hhmm", "10:00\\u201310:20 AM", \r
358             \r
359             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hhmmzz", "10:00\\u201310:20 AM PST", \r
360             \r
361             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hms", "10:0:10 AM \\u2013 10:20:10 AM", \r
362             \r
363             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMMM", "January 10", \r
364             \r
365             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMM", "Wednesday, January 10", \r
366             \r
367             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdMMMy", "Wed, Jan 10, 2007", \r
368             \r
369             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMM", "Jan 10", \r
370             \r
371             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdMMM", "Wed, Jan 10", \r
372             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dM", "1/10", \r
373             \r
374             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "My", "1/2007", \r
375             \r
376             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdM", "Wed, 1/10", \r
377             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "d", "10", \r
378             \r
379             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Ed", "10 Wed", \r
380             \r
381             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "y", "2007", \r
382             \r
383             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "M", "1", \r
384             \r
385             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "MMM", "Jan", \r
386             \r
387             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "MMMM", "January", \r
388             \r
389             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "10:10 AM", \r
390             \r
391             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmv", "10:10 AM PT", \r
392             \r
393             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 AM PST", \r
394             \r
395             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "10", \r
396             \r
397             \r
398             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hz", "PST (Hour: 10)", \r
399             \r
400             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hhmmzz", "10:10 AM PST", \r
401             \r
402             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hms", "10:10:10 AM", \r
403             \r
404             \r
405             \r
406             "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMMy", "2007\\u5e7410\\u670810\\u65e5\\u661f\\u671f\\u4e09\\u81f32008\\u5e7410\\u670810\\u65e5\\u661f\\u671f\\u4e94", \r
407             \r
408             "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hm", "2007\\u5e7410\\u670810\\u65e5 \\u4e0a\\u534810:10\\u20132008\\u5e7410\\u670810\\u65e5 \\u4e0a\\u534810:10", \r
409             \r
410             "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMy", "2007\\u5e7410\\u670810\\u65e5\\u81f311\\u670810\\u65e5", \r
411             \r
412             "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMM", "10\\u670810\\u65e5\\u81f311\\u670810\\u65e5", \r
413             \r
414             "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMMy", "2007\\u5e7410\\u6708\\u81f311\\u6708", \r
415             \r
416             "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMM", "10\\u670810\\u65e5\\u661f\\u671f\\u4e09\\u81f311\\u670810\\u65e5\\u661f\\u671f\\u516d", \r
417             \r
418             "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hmv", "2007\\u5e7410\\u670810\\u65e5 \\u4e0a\\u534810:10 \\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)\\u20132007\\u5e7411\\u670810\\u65e5 \\u4e0a\\u534810:10 \\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)", \r
419             \r
420             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMMy", "2007\\u5e7411\\u670810\\u65e5\\u661f\\u671f\\u516d\\u81f320\\u65e5\\u661f\\u671f\\u4e8c", \r
421             \r
422             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMy", "2007\\u5e7411\\u670810\\u65e5\\u81f320\\u65e5", \r
423             \r
424             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMM", "11\\u670810\\u65e5\\u81f320\\u65e5", \r
425             \r
426             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMMy", "2007-11", \r
427             \r
428             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMM", "11\\u670810\\u65e5\\u661f\\u671f\\u516d\\u81f320\\u65e5\\u661f\\u671f\\u4e8c", \r
429             \r
430             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMM", "11\\u670810\\u65e5\\u5468\\u516d\\u81f320\\u65e5\\u5468\\u4e8c", \r
431             \r
432             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "07-11-10\\u5468\\u516d\\u81f307-11-20\\u5468\\u4e8c", \r
433             \r
434             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "07-11-10\\u81f307-11-20", \r
435             \r
436             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "11-10\\u81f311-20", \r
437             \r
438             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "2007-11", \r
439             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "11-10\\u5468\\u516d\\u81f311-20\\u5468\\u4e8c", \r
440             \r
441             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10\\u65e5\\u81f320\\u65e5", \r
442             \r
443             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007", \r
444             \r
445             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11", \r
446             \r
447             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMM", "11", \r
448             \r
449             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMM", "11", \r
450             \r
451             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hmz", "2007\\u5e7411\\u670810\\u65e5 \\u4e0a\\u534810:10 \\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800\\u20132007\\u5e7411\\u670820\\u65e5 \\u4e0a\\u534810:10 \\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800", \r
452             \r
453             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "h", "2007\\u5e7411\\u670810\\u65e5 10\\u20132007\\u5e7411\\u670820\\u65e5 10", \r
454             \r
455             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMMy", "2007\\u5e7401\\u670810\\u65e5\\u661f\\u671f\\u4e09", \r
456             \r
457             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hm", "\\u4e0a\\u534810:00\\u81f3\\u4e0b\\u53482:10", \r
458             \r
459             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmv", "\\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)\\u4e0a\\u534810:00\\u81f3\\u4e0b\\u53482:10", \r
460             \r
461             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmz", "\\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800\\u4e0a\\u534810:00\\u81f3\\u4e0b\\u53482:10", \r
462             \r
463             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "\\u4e0a\\u534810\\u81f3\\u4e0b\\u53482\\u65f6", \r
464             \r
465             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hv", "\\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)\\u4e0a\\u534810\\u81f3\\u4e0b\\u53482\\u65f6", \r
466             \r
467             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hz", "\\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800\\u4e0a\\u534810\\u81f3\\u4e0b\\u53482\\u65f6", \r
468             \r
469             "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMM", "01-10", \r
470             \r
471             "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "\\u4e0a\\u534810:00\\u81f310:20", \r
472             \r
473             "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "\\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)\\u4e0a\\u534810:00\\u81f310:20", \r
474             \r
475             "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10", \r
476             \r
477             "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "\\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800 (\\u5c0f\\u65f6: 10)", \r
478             \r
479             "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMMy", "2007\\u5e7401\\u670810\\u65e5\\u661f\\u671f\\u4e09", \r
480             \r
481             "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "\\u4e0a\\u534810:10", \r
482             \r
483             "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "10", \r
484             \r
485             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMy", "Mittwoch, 10. Okt 2007 - Freitag, 10. Okt 2008", \r
486             \r
487             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMy", "10. Okt 2007 - 10. Okt 2008", \r
488             \r
489             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMM", "10. Okt 2007 - 10. Okt 2008", \r
490             \r
491             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMy", "Okt 2007 - Okt 2008", \r
492             \r
493             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEdMMM", "Mi., 10. Okt 2007 - Fr., 10. Okt 2008", \r
494             \r
495             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMy", "Mi., 10.10.07 - Fr., 10.10.08", \r
496             \r
497             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMy", "10.10.07 - 10.10.08", \r
498             \r
499             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dM", "10.10.07 - 10.10.08", \r
500             \r
501             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "My", "10.07 - 10.08", \r
502             \r
503             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdM", "Mi., 10.10.07 - Fr., 10.10.08", \r
504             \r
505             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "d", "10.10.07 - 10.10.08", \r
506             \r
507             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "y", "2007-2008", \r
508             \r
509             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "M", "10.07 - 10.08", \r
510             \r
511             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMM", "Okt 2007 - Okt 2008", \r
512             \r
513             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hm", "10.10.2007 10:10 vorm. - 10.10.2008 10:10 vorm.", \r
514             \r
515             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "jm", "10.10.2007 10:10 - 10.10.2008 10:10", \r
516 \r
517             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMy", "Mittwoch, 10. Okt - Samstag, 10. Nov 2007", \r
518             \r
519             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMy", "10. Okt - 10. Nov 2007", \r
520             \r
521             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMM", "10. Okt - 10. Nov", \r
522             \r
523             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMy", "Okt-Nov 2007", \r
524             \r
525             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMM", "Mittwoch, 10. Okt - Samstag, 10. Nov", \r
526             \r
527             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMy", "Mi., 10.10.07 - Sa., 10.11.07", \r
528             \r
529             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dM", "10.10. - 10.11.", \r
530             \r
531             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "My", "10.07 - 11.07", \r
532             \r
533             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdM", "Mi., 10.10. - Sa., 10.11.", \r
534             \r
535             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "d", "10.10. - 10.11.", \r
536             \r
537             \r
538             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "M", "10.-11.", \r
539             \r
540             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMM", "Okt-Nov", \r
541             \r
542             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hmv", "10.10.2007 10:10 vorm. Vereinigte Staaten (Los Angeles) - 10.11.2007 10:10 vorm. Vereinigte Staaten (Los Angeles)", \r
543             \r
544             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "jmv", "10.10.2007 10:10 Vereinigte Staaten (Los Angeles) - 10.11.2007 10:10 Vereinigte Staaten (Los Angeles)", \r
545 \r
546             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hms", "10.10.2007 10:10:10 vorm. - 10.11.2007 10:10:10 vorm.", \r
547             \r
548             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMy", "Samstag, 10. - Dienstag, 20. Nov 2007", \r
549             \r
550             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMy", "10.-20. Nov 2007", \r
551             \r
552             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMM", "10.-20. Nov", \r
553             \r
554             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMy", "Nov 2007", \r
555             \r
556             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMM", "Samstag, 10. - Dienstag, 20. Nov", \r
557             \r
558             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sa., 10.11.07 - Di., 20.11.07", \r
559             \r
560             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "10.11.07 - 20.11.07", \r
561             \r
562             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "10.11. - 20.11.", \r
563             \r
564             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "2007-11", \r
565             \r
566             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "Sa., 10.11. - Di., 20.11.", \r
567             \r
568             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10.-20.", \r
569             \r
570             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007", \r
571             \r
572             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11", \r
573             \r
574             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hmv", "10.11.2007 10:10 vorm. Vereinigte Staaten (Los Angeles) - 20.11.2007 10:10 vorm. Vereinigte Staaten (Los Angeles)", \r
575             \r
576             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "jmv", "10.11.2007 10:10 Vereinigte Staaten (Los Angeles) - 20.11.2007 10:10 Vereinigte Staaten (Los Angeles)", \r
577 \r
578             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMy", "Mittwoch, 10. Jan 2007", \r
579             \r
580             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMy", "10. Jan 2007", \r
581             \r
582             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMM", "10. Jan", \r
583             \r
584             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMy", "Jan 2007", \r
585             \r
586             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMM", "Mittwoch 10. Jan", \r
587             \r
588             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmz", "10:00-14:10 GMT-08:00", \r
589             \r
590             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10-14", \r
591             \r
592             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EEEEdMMM", "Mittwoch 10. Jan", \r
593             \r
594             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "10:00-10:20", \r
595             \r
596             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "10:00-10:20 Vereinigte Staaten (Los Angeles)", \r
597             \r
598             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmz", "10:00-10:20 GMT-08:00", \r
599             \r
600             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10", \r
601             \r
602             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hv", "Vereinigte Staaten (Los Angeles) (Stunde: 10)", \r
603             \r
604             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "GMT-08:00 (Stunde: 10)", \r
605             \r
606             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMy", "Mittwoch, 10. Jan 2007", \r
607             \r
608             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "10:10 vorm.", \r
609 \r
610             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "jm", "10:10", \r
611 \r
612             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmv", "10:10 vorm. Vereinigte Staaten (Los Angeles)", \r
613             \r
614             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "jmv", "10:10 Vereinigte Staaten (Los Angeles)", \r
615 \r
616             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 vorm. GMT-08:00", \r
617             \r
618             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "jmz", "10:10 GMT-08:00", \r
619 \r
620             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "10", \r
621             \r
622             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hv", "Vereinigte Staaten (Los Angeles) (Stunde: 10)", \r
623             \r
624             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hz", "GMT-08:00 (Stunde: 10)", \r
625         };\r
626         expect(DATA, DATA.length);\r
627     }\r
628 \r
629 \r
630     private void expect(String[] data, int data_length) {\r
631         int i = 1;\r
632         while (i<data_length) {\r
633             String locName = data[i++];\r
634             ULocale loc = new ULocale(locName);\r
635             SimpleDateFormat ref = new SimpleDateFormat(data[0], loc);\r
636             // 'f'\r
637             String datestr = data[i++];\r
638             String datestr_2 = data[i++];\r
639             Date date, date_2;\r
640             try {\r
641                 date = ref.parse(datestr);\r
642                 date_2 = ref.parse(datestr_2);\r
643             } catch ( ParseException e ) {\r
644                 errln("parse exception" + e);\r
645                 continue;\r
646             }\r
647             DateInterval dtitv = new DateInterval(date.getTime(), \r
648                                                   date_2.getTime());\r
649             String oneSkeleton = data[i++];\r
650             DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(\r
651                                               oneSkeleton, loc);\r
652             String expected = data[i++];\r
653             String formatted = dtitvfmt.format(dtitv);\r
654             if ( !formatted.equals(Utility.unescape(expected)) )  {\r
655                 errln("\"" + locName + "\\" + oneSkeleton + "\\" + datestr + "\\" + datestr_2 + "\"\t expected: " + expected +"\tgot: " + formatted + "\n");\r
656             }\r
657         }\r
658     }\r
659 \r
660 \r
661     /* \r
662      * Test format using user defined DateIntervalInfo\r
663      */\r
664     public void testFormatUserDII() {\r
665         // first item is date pattern\r
666         // followed by a group of locale/from_data/to_data/interval_data\r
667         String[] DATA = {\r
668             "yyyy MM dd HH:mm:ss",    \r
669             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Oct 10, 2007 --- Oct 10, 2008", \r
670             \r
671             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 Oct 10 - Nov 2007", \r
672             \r
673             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Nov 10, 2007 --- Nov 20, 2007", \r
674             \r
675             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Jan 10, 2007", \r
676             \r
677             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "Jan 10, 2007", \r
678             \r
679             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Jan 10, 2007", \r
680             \r
681             "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "2007\\u5e7410\\u670810\\u65e5 --- 2008\\u5e7410\\u670810\\u65e5", \r
682             \r
683             \r
684             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007\\u5e7411\\u670810\\u65e5 --- 2007\\u5e7411\\u670820\\u65e5", \r
685             \r
686             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "2007\\u5e7401\\u670810\\u65e5", \r
687             \r
688             "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "2007\\u5e7401\\u670810\\u65e5", \r
689             \r
690             "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "2007\\u5e7401\\u670810\\u65e5", \r
691             \r
692             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "10. Okt 2007 --- 10. Okt 2008", \r
693             \r
694             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 Okt 10 - Nov 2007", \r
695             \r
696             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "10. Nov 2007 --- 20. Nov 2007", \r
697             \r
698             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "10. Jan 2007", \r
699             \r
700             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "10. Jan 2007", \r
701             \r
702             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "10. Jan 2007", \r
703             \r
704             "es", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "10 de oct de 2007 --- 10 de oct de 2008", \r
705             \r
706             "es", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 oct 10 - nov 2007", \r
707             \r
708             "es", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "10 de nov de 2007 --- 20 de nov de 2007", \r
709             \r
710             "es", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "10 de ene de 2007", \r
711             \r
712             "es", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "10 de ene de 2007", \r
713             \r
714             "es", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "10 de ene de 2007", \r
715         };\r
716         expectUserDII(DATA, DATA.length);\r
717     }\r
718     \r
719     \r
720     private void expectUserDII(String[] data, int data_length) {\r
721         int i = 1;\r
722         while (i<data_length) {\r
723             String locName = data[i++];\r
724             ULocale loc = new ULocale(locName);\r
725             SimpleDateFormat ref = new SimpleDateFormat(data[0], loc);\r
726             // 'f'\r
727             String datestr = data[i++];\r
728             String datestr_2 = data[i++];\r
729             Date date, date_2;\r
730             try {\r
731                 date = ref.parse(datestr);\r
732                 date_2 = ref.parse(datestr_2);\r
733             } catch ( ParseException e ) {\r
734                 errln("parse exception" + e);\r
735                 continue;\r
736             }\r
737             DateInterval dtitv = new DateInterval(date.getTime(), \r
738                                                   date_2.getTime());\r
739 \r
740             DateIntervalInfo dtitvinf = new DateIntervalInfo();\r
741             dtitvinf.setFallbackIntervalPattern("{0} --- {1}");\r
742             dtitvinf.setIntervalPattern("yMMMd", Calendar.MONTH, "yyyy MMM d - MMM y");\r
743             dtitvinf.setIntervalPattern("yMMMd", Calendar.HOUR_OF_DAY, "yyyy MMM d HH:mm - HH:mm");\r
744             DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(\r
745                         DateFormat.YEAR_ABBR_MONTH_DAY,\r
746                         loc, dtitvinf);\r
747             String expected = data[i++];\r
748             String formatted = dtitvfmt.format(dtitv);\r
749             if ( !formatted.equals(Utility.unescape(expected)) )  {\r
750                 errln("userDII: \"" + locName + "\\" + datestr + "\\" + datestr_2 + "\"\t expected: " + expected +"\tgot: " + formatted + "\n");\r
751             }\r
752         }\r
753     }\r
754 \r
755 \r
756 \r
757     /* \r
758      * Test format using user defined DateIntervalInfo\r
759      */\r
760     public void testFormatCLDR() {\r
761         // first item is date pattern\r
762         // followed by a group of locale/from_data/to_data/interval_data\r
763         String[] DATA = {\r
764             "yyyy MM dd HH:mm:ss",    \r
765             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "all diff", \r
766             \r
767             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 diff Oct 10 - Nov 2007", \r
768             \r
769             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007 Nov 10 ~ 20", \r
770             \r
771             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Jan 10, 2007", \r
772             \r
773             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "Jan 10, 2007", \r
774             \r
775             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Jan 10, 2007", \r
776             \r
777             "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "all diff", \r
778             \r
779             "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 diff 10\\u6708 10 - 11\\u6708 2007", \r
780             \r
781             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007 11\\u6708 10 ~ 20", \r
782             \r
783             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "2007\u5E7401\\u670810\u65E5", \r
784             \r
785             "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "2007\u5E7401\\u670810\u65E5", \r
786             \r
787             "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "2007\u5E7401\\u670810\u65E5", \r
788         };\r
789         expectUserCLDR(DATA, DATA.length);\r
790     }\r
791     \r
792     \r
793     private void expectUserCLDR(String[] data, int data_length) {\r
794         int i = 1;\r
795         while (i<data_length) {\r
796             String locName = data[i++];\r
797             ULocale loc = new ULocale(locName);\r
798             SimpleDateFormat ref = new SimpleDateFormat(data[0], loc);\r
799             // 'f'\r
800             String datestr = data[i++];\r
801             String datestr_2 = data[i++];\r
802             Date date, date_2;\r
803             try {\r
804                 date = ref.parse(datestr);\r
805                 date_2 = ref.parse(datestr_2);\r
806             } catch ( ParseException e ) {\r
807                 errln("parse exception" + e);\r
808                 continue;\r
809             }\r
810             DateInterval dtitv = new DateInterval(date.getTime(), \r
811                                                   date_2.getTime());\r
812 \r
813             DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance("yyyyMMMdd", loc);\r
814             //DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance("yMd");\r
815             //SimpleDateFormat dtfmt = new SimpleDateFormat("yyyy 'year' MMM 'month' dd 'day'", loc);\r
816             //dtitvfmt.setDateFormat(dtfmt);\r
817             DateIntervalInfo dtitvinf = new DateIntervalInfo();\r
818             dtitvinf.setFallbackIntervalPattern("{0} --- {1}");\r
819             dtitvinf.setIntervalPattern("yMMMd", Calendar.YEAR, "'all diff'");\r
820             dtitvinf.setIntervalPattern("yMMMd", Calendar.MONTH, "yyyy 'diff' MMM d - MMM y");\r
821             dtitvinf.setIntervalPattern("yMMMd", Calendar.DATE, "yyyy MMM d ~ d");\r
822             dtitvinf.setIntervalPattern("yMMMd", Calendar.HOUR_OF_DAY, "yyyy MMMd HH:mm ~ HH:mm");\r
823             dtitvfmt.setDateIntervalInfo(dtitvinf);\r
824             FieldPosition pos = new FieldPosition(0);\r
825             StringBuffer str = new StringBuffer("");\r
826             DateFormat dtfmt = dtitvfmt.getDateFormat();\r
827             Calendar fromCalendar = (Calendar) dtfmt.getCalendar().clone();\r
828             Calendar toCalendar = (Calendar) dtfmt.getCalendar().clone();\r
829             fromCalendar.setTimeInMillis(dtitv.getFromDate());\r
830             toCalendar.setTimeInMillis(dtitv.getToDate());\r
831             dtitvfmt.format(fromCalendar, toCalendar, str, pos);\r
832 \r
833             String expected = data[i++];\r
834             String formatted = dtitvfmt.format(dtitv).toString();\r
835             if ( !formatted.equals(Utility.unescape(expected)) )  {\r
836                 errln("CLDR: \"" + locName + "\\" + datestr + "\\" + datestr_2 + "\"\t expected: " + expected +"\tgot: " + formatted + "\n");\r
837             }\r
838         }\r
839     }\r
840 \r
841 \r
842     /**\r
843      * Stress test\r
844      */\r
845     public void testStress() {\r
846         if (getInclusion() <= 5) {\r
847             logln("INFO: Skipping test");\r
848             return;\r
849         }\r
850 \r
851         // test data.\r
852         // The 1st is the format pattern,\r
853         // Next are pairs in which the 1st in the pair is the earlier date\r
854         // and the 2nd in the pair is the later date\r
855         String[] DATA = {\r
856             "yyyy MM dd HH:mm:ss",\r
857             "2007 10 10 10:10:10", "2008 10 10 10:10:10", \r
858             "2007 10 10 10:10:10", "2007 11 10 10:10:10", \r
859             "2007 11 10 10:10:10", "2007 11 20 10:10:10", \r
860             "2007 01 10 10:00:10", "2007 01 10 14:10:10", \r
861             "2007 01 10 10:00:10", "2007 01 10 10:20:10", \r
862             "2007 01 10 10:10:10", "2007 01 10 10:10:20", \r
863         };\r
864 \r
865 \r
866         String[][] testLocale = {\r
867             {"en", "", ""},\r
868             {"zh", "", ""},\r
869             {"de", "", ""},\r
870             {"ar", "", ""},\r
871             {"en", "GB",  ""},\r
872             {"fr", "", ""},\r
873             {"it", "", ""},\r
874             {"nl", "", ""},\r
875             {"zh", "TW",  ""},\r
876             {"ja", "", ""},\r
877             {"pt", "BR", ""},\r
878             {"ru", "", ""},\r
879             {"tr", "", ""},\r
880             {"es", "", ""},\r
881             {"ko", "", ""},\r
882             //{"th", "", ""},\r
883             {"sv", "", ""},\r
884             {"pl", "", ""},\r
885             {"fi", "", ""},\r
886             {"da", "", ""},\r
887             {"pt", "PT", ""},\r
888             {"ro", "", ""},\r
889             {"hu", "", ""},\r
890             {"he", "", ""},\r
891             {"in", "", ""},\r
892             {"cs", "", ""},\r
893             {"el", "", ""},\r
894             {"no", "", ""},\r
895             {"vi", "", ""},\r
896             {"bg", "", ""},\r
897             {"hr", "", ""},\r
898             {"lt", "", ""},\r
899             {"sk", "", ""},\r
900             {"sl", "", ""},\r
901             {"sr", "", ""},\r
902             {"ca", "", ""},\r
903             {"lv", "", ""},\r
904             {"uk", "", ""},\r
905             {"hi", "", ""},\r
906         };\r
907 \r
908         int localeIndex;\r
909         for ( localeIndex = 0; localeIndex < testLocale.length; ++localeIndex) {\r
910             stress(DATA, DATA.length, new Locale(testLocale[localeIndex][0], \r
911                    testLocale[localeIndex][1], testLocale[localeIndex][2]), \r
912                    testLocale[localeIndex][0]+testLocale[localeIndex][1]);\r
913         }\r
914     }\r
915 \r
916     private void stress(String[] data, int data_length, Locale loc, String locName) {\r
917         String[] skeleton = {\r
918             "EEEEdMMMMy",\r
919             "dMMMMy",\r
920             "dMMMM",\r
921             "MMMMy",\r
922             "EEEEdMMMM",\r
923             "EEEdMMMy",\r
924             "dMMMy",\r
925             "dMMM",\r
926             "MMMy",\r
927             "EEEdMMM",\r
928             "EEEdMy",\r
929             "dMy",\r
930             "dM",\r
931             "My",\r
932             "EEEdM",\r
933             "d",\r
934             "EEEd",\r
935             "y",\r
936             "M",\r
937             "MMM",\r
938             "MMMM",\r
939             "hm",\r
940             "hmv",\r
941             "hmz",\r
942             "h",\r
943             "hv",\r
944             "hz",\r
945             "EEddMMyyyy", // following could be normalized\r
946             "EddMMy", \r
947             "hhmm",\r
948             "hhmmzz",\r
949             "hms",  // following could not be normalized\r
950             "dMMMMMy",\r
951             "EEEEEdM",\r
952         };\r
953 \r
954         int i = 0;\r
955 \r
956         SimpleDateFormat ref = new SimpleDateFormat(data[i++], loc);\r
957 \r
958         while (i<data_length) {\r
959             // 'f'\r
960             String datestr = data[i++];\r
961             String datestr_2 = data[i++];\r
962             Date date;\r
963             Date date_2;\r
964             try {\r
965                 date = ref.parse(datestr);\r
966                 date_2 = ref.parse(datestr_2);\r
967             } catch ( ParseException e ) {\r
968                 errln("parse exception" + e);\r
969                 continue;\r
970             }\r
971             DateInterval dtitv = new DateInterval(date.getTime(), date_2.getTime());\r
972 \r
973             for ( int skeletonIndex = 0; \r
974                   skeletonIndex < skeleton.length; \r
975                   ++skeletonIndex ) {\r
976                 String oneSkeleton = skeleton[skeletonIndex];\r
977                 // need special handle of "Thai" since the default calendar\r
978                 // of "Thai" is "Budd", not "Gregorian".\r
979                 DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(oneSkeleton, loc);\r
980                 /*\r
981                 if ( locName.equals("th") ) {\r
982                     // reset calendar to be Gregorian\r
983                     GregorianCalendar gregCal = new GregorianCalendar(loc);\r
984                     DateFormat dformat = dtitvfmt.getDateFormat();\r
985                     DateFormat newOne = (DateFormat)dformat.clone();\r
986                     newOne.setCalendar(gregCal);\r
987                     dtitvfmt.setDateFormat(newOne);\r
988                 }\r
989                 */\r
990                 dtitvfmt.format(dtitv);\r
991             }\r
992 \r
993 \r
994             // test interval format by algorithm \r
995             for ( int style = DateFormat.FULL; style  < 4; ++style ) {\r
996                 SimpleDateFormat dtfmt = (SimpleDateFormat) DateFormat.getDateInstance(style, loc);\r
997                 FieldPosition pos = new FieldPosition(0);\r
998                 StringBuffer str = new StringBuffer("");\r
999                 Calendar fromCalendar = (Calendar) dtfmt.getCalendar().clone();\r
1000                 Calendar toCalendar = (Calendar) dtfmt.getCalendar().clone();\r
1001                 fromCalendar.setTimeInMillis(dtitv.getFromDate());\r
1002                 toCalendar.setTimeInMillis(dtitv.getToDate());\r
1003                 dtfmt.intervalFormatByAlgorithm(fromCalendar, toCalendar, str, pos);\r
1004             } \r
1005         } \r
1006     }\r
1007 \r
1008     /*\r
1009      * Ticket#6396 DateIntervalInfo of ICU4J 4.0d3 throw NullPointerException \r
1010      */\r
1011     public void TestT6396() {\r
1012         DateIntervalInfo dii = new DateIntervalInfo(new ULocale("th_TH"));\r
1013         try {\r
1014             // ticket#6396 reported toString() throws NullPointerException\r
1015             String diiStr = dii.toString();\r
1016             logln("new DateIntervalInfo(new ULocale(\"th_TH\")).toString() - " + diiStr);\r
1017 \r
1018             // equals also had the similar problem\r
1019             DateIntervalInfo dii1 = (DateIntervalInfo)dii.clone();\r
1020             if (!dii.equals(dii1)) {\r
1021                 errln("FAIL: Cloned DateIntervalInfo is not equal to the source");\r
1022             }\r
1023         } catch (Exception e) {\r
1024             errln("FAIL: Exception - " + e.getClass().getName());\r
1025         }\r
1026     }\r
1027 }\r