]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_4_2-src/main/tests/core/src/com/ibm/icu/dev/test/format/DateIntervalFormatTest.java
go
[Dictionary.git] / jars / icu4j-4_4_2-src / main / tests / core / src / com / ibm / icu / dev / test / format / DateIntervalFormatTest.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 2001-2010, 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.text.DateIntervalInfo.PatternInfo;\r
26 import com.ibm.icu.util.Calendar;\r
27 import com.ibm.icu.util.DateInterval;\r
28 import com.ibm.icu.util.ULocale;\r
29 \r
30 public class DateIntervalFormatTest extends com.ibm.icu.dev.test.TestFmwk {\r
31 \r
32     public static void main(String[] args) throws Exception {\r
33         new DateIntervalFormatTest().run(args);\r
34     }\r
35 \r
36 \r
37     /**\r
38      * Test format\r
39      */\r
40     public void TestFormat() {\r
41         // first item is date pattern\r
42         // followed by a group of locale/from_data/to_data/skeleton/interval_data\r
43         String[] DATA = {\r
44             "yyyy MM dd HH:mm:ss",    \r
45             // test root\r
46             "root", "2007 11 10 10:10:10", "2007 12 10 10:10:10", "yM", "2007-11 \\u2013 12",\r
47          \r
48             // test 'H' and 'h', using availableFormat in fallback\r
49             "en", "2007 11 10 10:10:10", "2007 11 10 15:10:10", "Hms", "10:10:10 \\u2013 15:10:10",\r
50             "en", "2007 11 10 10:10:10", "2007 11 10 15:10:10", "hms", "10:10:10 AM \\u2013 3:10:10 PM",\r
51 \r
52             // test skeleton with both date and time\r
53             "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
54             \r
55             "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "dMMMyhm", "Nov 10, 2007 10:10\\u201311:10 AM", \r
56             \r
57             "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "hms", "10:10:10 AM \\u2013 11:10:10 AM", \r
58             \r
59             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMMy", "Wednesday, October 10, 2007 \\u2013 Friday, October 10, 2008", \r
60             \r
61             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMMy", "October 10, 2007 \\u2013 October 10, 2008", \r
62             \r
63             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMM", "October 10, 2007 \\u2013 October 10, 2008", \r
64             \r
65             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMMy", "October 2007 \\u2013 October 2008", \r
66             \r
67             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMM", "Wednesday, October 10, 2007 \\u2013 Friday, October 10, 2008", \r
68             \r
69             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMMMy", "Wed, Oct 10, 2007 \\u2013 Fri, Oct 10, 2008", \r
70             \r
71             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMy", "Oct 10, 2007 \\u2013 Oct 10, 2008", \r
72             \r
73             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMM", "Oct 10, 2007 \\u2013 Oct 10, 2008", \r
74             \r
75             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMy", "Oct 2007 \\u2013 Oct 2008", \r
76             \r
77             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMMM", "Wed, Oct 10, 2007 \\u2013 Fri, Oct 10, 2008", \r
78             \r
79             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08", \r
80             \r
81             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMy", "10/10/07 \\u2013 10/10/08", \r
82             \r
83             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dM", "10/10/07 \\u2013 10/10/08", \r
84             \r
85             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "My", "10/07 \\u2013 10/08", \r
86             \r
87             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdM", "Wed, 10/10/07 \\u2013 Fri, 10/10/08", \r
88             \r
89             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "d", "10/10/07 \\u2013 10/10/08", \r
90             \r
91             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Ed", "10 Wed \\u2013 10 Fri", \r
92             \r
93             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "y", "2007\\u20132008", \r
94             \r
95             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "M", "10/07 \\u2013 10/08", \r
96             \r
97             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMM", "Oct 2007 \\u2013 Oct 2008", \r
98             \r
99             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMM", "October 2007 \\u2013 October 2008", \r
100             \r
101             "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
102             \r
103             "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
104             \r
105             "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
106             \r
107             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "h", "10/10/2007 10 AM \\u2013 10/10/2008 10 AM", \r
108             \r
109             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hv", "10/10/2007 10 AM PT \\u2013 10/10/2008 10 AM PT", \r
110             \r
111             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hz", "10/10/2007 10 AM PDT \\u2013 10/10/2008 10 AM PDT", \r
112             \r
113             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEddMMyyyy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08", \r
114             \r
115             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EddMMy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08", \r
116             \r
117             "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
118             \r
119             "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
120             \r
121             "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
122             \r
123             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMMMy", "O 10, 2007 \\u2013 O 10, 2008", \r
124             \r
125             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEEdM", "W, 10/10/07 \\u2013 F, 10/10/08", \r
126             \r
127             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMMy", "Wednesday, October 10 \\u2013 Saturday, November 10, 2007", \r
128             \r
129             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMy", "October 10 \\u2013 November 10, 2007", \r
130             \r
131             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMM", "October 10 \\u2013 November 10", \r
132             \r
133             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMMy", "October\\u2013November 2007", \r
134             \r
135             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMM", "Wednesday, October 10 \\u2013 Saturday, November 10", \r
136             \r
137             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMMMy", "Wed, Oct 10 \\u2013 Sat, Nov 10, 2007", \r
138             \r
139             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMy", "Oct 10 \\u2013 Nov 10, 2007", \r
140             \r
141             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMM", "Oct 10 \\u2013 Nov 10", \r
142             \r
143             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMy", "Oct\\u2013Nov 2007", \r
144             \r
145             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMMM", "Wed, Oct 10 \\u2013 Sat, Nov 10", \r
146             \r
147             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07", \r
148             \r
149             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMy", "10/10/07 \\u2013 11/10/07", \r
150             \r
151             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dM", "10/10 \\u2013 11/10", \r
152             \r
153             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "My", "10/07 \\u2013 11/07", \r
154             \r
155             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdM", "Wed, 10/10 \\u2013 Sat, 11/10", \r
156             \r
157             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "d", "10/10 \\u2013 11/10", \r
158             \r
159             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "Ed", "10 Wed \\u2013 10 Sat", \r
160             \r
161             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "y", "2007", \r
162             \r
163             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "M", "10\\u201311", \r
164             \r
165             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMM", "Oct\\u2013Nov", \r
166             \r
167             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMM", "October-November", \r
168             \r
169             "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
170             \r
171             "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
172             \r
173             "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
174             \r
175             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "h", "10/10/2007 10 AM \\u2013 11/10/2007 10 AM", \r
176             \r
177             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hv", "10/10/2007 10 AM PT \\u2013 11/10/2007 10 AM PT", \r
178             \r
179             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hz", "10/10/2007 10 AM PDT \\u2013 11/10/2007 10 AM PST", \r
180             \r
181             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEddMMyyyy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07", \r
182             \r
183             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EddMMy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07", \r
184             \r
185             "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
186             \r
187             "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
188             \r
189             "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
190             \r
191             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMMy", "O 10 \\u2013 N 10, 2007", \r
192             \r
193             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEEdM", "W, 10/10 \\u2013 S, 11/10", \r
194             \r
195             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMMy", "Saturday, November 10 \\u2013 Tuesday, November 20, 2007", \r
196             \r
197             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMy", "November 10\\u201320, 2007", \r
198             \r
199             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMM", "November 10\\u201320", \r
200             \r
201             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMMy", "November 2007", \r
202             \r
203             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMM", "Saturday, November 10 \\u2013 Tuesday, November 20", \r
204             \r
205             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMMy", "Sat, Nov 10 \\u2013 Tue, Nov 20, 2007", \r
206             \r
207             \r
208             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMM", "Nov 10\\u201320", \r
209             \r
210             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMy", "Nov 2007", \r
211             \r
212             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMM", "Sat, Nov 10 \\u2013 Tue, Nov 20", \r
213             \r
214             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07", \r
215             \r
216             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "11/10/07 \\u2013 11/20/07", \r
217             \r
218             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "11/10 \\u2013 11/20", \r
219             \r
220             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "11/2007", \r
221             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "Sat, 11/10 \\u2013 Tue, 11/20", \r
222             \r
223             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10\\u201320", \r
224             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Ed", "10 Sat \\u2013 20 Tue", \r
225             \r
226             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11", \r
227             \r
228             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMM", "Nov", \r
229             \r
230             "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
231             \r
232             "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
233             \r
234             "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
235             \r
236             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hz", "11/10/2007 10 AM PST \\u2013 11/20/2007 10 AM PST", \r
237             \r
238             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEddMMyyyy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07", \r
239             \r
240             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EddMMy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07", \r
241             \r
242             "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
243             \r
244             "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
245             \r
246             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMMy", "N 10\\u201320, 2007", \r
247             \r
248             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEEdM", "S, 11/10 \\u2013 T, 11/20", \r
249             \r
250             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMMy", "Wednesday, January 10, 2007", \r
251             \r
252             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMMy", "January 10, 2007", \r
253             \r
254             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMM", "January 10", \r
255             \r
256             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMMy", "January 2007", \r
257             \r
258             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMM", "Wednesday, January 10", \r
259             \r
260             \r
261             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMy", "Jan 10, 2007", \r
262             \r
263             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMM", "Jan 10", \r
264             \r
265             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMy", "Jan 2007", \r
266             \r
267             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdMMM", "Wed, Jan 10", \r
268             \r
269             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdMy", "Wed, 1/10/2007", \r
270             \r
271             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMy", "1/10/2007", \r
272             \r
273             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dM", "1/10", \r
274             \r
275             \r
276             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdM", "Wed, 1/10", \r
277             \r
278             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "d", "10", \r
279             \r
280             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Ed", "10 Wed", \r
281             \r
282             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "y", "2007", \r
283             \r
284             \r
285             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMM", "Jan", \r
286             \r
287             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMM", "January", \r
288             \r
289             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hm", "10:00 AM \\u2013 2:10 PM", \r
290             \r
291             \r
292             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmz", "10:00 AM \\u2013 2:10 PM PST", \r
293             \r
294             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10 AM \\u2013 2 PM", \r
295             \r
296             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hv", "10 AM \\u2013 2 PM PT", \r
297             \r
298             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hz", "10 AM \\u2013 2 PM PST", \r
299             \r
300             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEddMMyyyy", "Wed, 01/10/2007", \r
301             \r
302             \r
303             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hhmm", "10:00 AM \\u2013 2:10 PM", \r
304             \r
305             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hhmmzz", "10:00 AM \\u2013 2:10 PM PST", \r
306             \r
307             \r
308             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMMMy", "J 10, 2007", \r
309             \r
310             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEEdM", "W, 1/10", \r
311             \r
312             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EEEEdMMMMy", "Wednesday, January 10, 2007", \r
313             \r
314             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMMy", "January 10, 2007", \r
315             \r
316             \r
317             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "MMMMy", "January 2007", \r
318             \r
319             \r
320             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMMMy", "Wed, Jan 10, 2007", \r
321             \r
322             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMy", "Jan 10, 2007", \r
323             \r
324             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMM", "Jan 10", \r
325             \r
326             \r
327             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMMM", "Wed, Jan 10", \r
328             \r
329             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMy", "Wed, 1/10/2007", \r
330             \r
331             \r
332             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dM", "1/10", \r
333             \r
334             \r
335             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdM", "Wed, 1/10", \r
336             \r
337             \r
338             \r
339             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "y", "2007", \r
340             \r
341             \r
342             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "MMM", "Jan", \r
343             \r
344             \r
345             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "10:00\\u201310:20 AM", \r
346             \r
347             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "10:00\\u201310:20 AM PT", \r
348             \r
349             \r
350             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10 AM", \r
351             \r
352             \r
353             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "10 AM PST", \r
354             \r
355             \r
356             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EddMMy", "Wed, 01/10/2007", \r
357             \r
358             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hhmm", "10:00\\u201310:20 AM", \r
359             \r
360             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hhmmzz", "10:00\\u201310:20 AM PST", \r
361             \r
362             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hms", "10:00:10 AM \\u2013 10:20:10 AM", \r
363             \r
364             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMMM", "January 10", \r
365             \r
366             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMM", "Wednesday, January 10", \r
367             \r
368             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdMMMy", "Wed, Jan 10, 2007", \r
369             \r
370             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMM", "Jan 10", \r
371             \r
372             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdMMM", "Wed, Jan 10", \r
373             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dM", "1/10", \r
374             \r
375             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "My", "1/2007", \r
376             \r
377             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdM", "Wed, 1/10", \r
378             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "d", "10", \r
379             \r
380             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Ed", "10 Wed", \r
381             \r
382             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "y", "2007", \r
383             \r
384             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "M", "1", \r
385             \r
386             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "MMM", "Jan", \r
387             \r
388             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "MMMM", "January", \r
389             \r
390             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "10:10 AM", \r
391             \r
392             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmv", "10:10 AM PT", \r
393             \r
394             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 AM PST", \r
395             \r
396             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "10 AM", \r
397             \r
398             \r
399             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hz", "10 AM PST", \r
400             \r
401             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hhmmzz", "10:10 AM PST", \r
402             \r
403             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hms", "10:10:10 AM", \r
404             \r
405             \r
406             \r
407             "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
408             \r
409             "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
410             \r
411             "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMy", "2007\\u5e7410\\u670810\\u65e5\\u81f311\\u670810\\u65e5", \r
412             \r
413             "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMM", "10\\u670810\\u65e5\\u81f311\\u670810\\u65e5", \r
414             \r
415             "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMMy", "2007\\u5e7410\\u6708\\u81f311\\u6708", \r
416             \r
417             "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
418             \r
419             "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
420             \r
421             "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
422             \r
423             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMy", "2007\\u5e7411\\u670810\\u65e5\\u81f320\\u65e5", \r
424             \r
425             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMM", "11\\u670810\\u65e5\\u81f320\\u65e5", \r
426             \r
427             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMMy", "2007\\u5E7411\\u6708", // (fixed expected result per ticket 6872<-6626)\r
428             \r
429             "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
430             \r
431             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMM", "11\\u670810\\u65e5\\u5468\\u516d\\u81f320\\u65e5\\u5468\\u4e8c", \r
432             \r
433             "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
434             \r
435             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "07-11-10\\u81f307-11-20", \r
436             \r
437             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "11-10\\u81f311-20", \r
438             \r
439             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "2007-11", \r
440             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "11-10\\u5468\\u516d\\u81f311-20\\u5468\\u4e8c", \r
441             \r
442             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10\\u65e5\\u81f320\\u65e5", \r
443             \r
444             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007", \r
445             \r
446             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11", \r
447             \r
448             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMM", "\\u5341\\u4E00\\u6708", // (fixed expected result per ticket 6872<-6626 and others)\r
449             \r
450             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMM", "\\u5341\\u4E00\\u6708", // (fixed expected result per ticket 6872<-6626 and others)\r
451             \r
452             "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
453             \r
454             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "h", "2007\\u5e7411\\u670810\\u65e5 \\u4e0a\\u534810\\u20132007\\u5e7411\\u670820\\u65e5 \\u4e0a\\u534810", \r
455             \r
456             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMMy", "2007\\u5e741\\u670810\\u65e5\\u661f\\u671f\\u4e09", // (fixed expected result per ticket 6872<-6626)\r
457             \r
458             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hm", "\\u4e0a\\u534810:00\\u81f3\\u4e0b\\u53482:10", \r
459             \r
460             "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
461             \r
462             "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
463             \r
464             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "\\u4e0a\\u534810\\u81f3\\u4e0b\\u53482\\u65f6", \r
465             \r
466             "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
467             \r
468             "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
469             \r
470             "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMM", "1\\u670810\\u65e5", // (fixed expected result per ticket 6872<-6626)\r
471             \r
472             "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "\\u4e0a\\u534810:00\\u81f310:20", \r
473             \r
474             "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
475             \r
476             "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "\\u4e0a\\u534810", \r
477             \r
478             "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "\\u4e0a\\u534810 \\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800", \r
479             \r
480             "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMMy", "2007\\u5e741\\u670810\\u65e5\\u661f\\u671f\\u4e09", // (fixed expected result per ticket 6872<-6626)\r
481             \r
482             "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "\\u4e0a\\u534810:10", \r
483             \r
484             "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "\\u4e0a\\u534810", \r
485             \r
486             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMy", "Mittwoch, 10. Okt 2007 - Freitag, 10. Okt 2008", \r
487             \r
488             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMy", "10. Okt 2007 - 10. Okt 2008", \r
489             \r
490             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMM", "10. Okt 2007 - 10. Okt 2008", \r
491             \r
492             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMy", "Okt 2007 - Okt 2008", \r
493             \r
494             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEdMMM", "Mi., 10. Okt 2007 - Fr., 10. Okt 2008", \r
495             \r
496             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMy", "Mi., 10.10.07 - Fr., 10.10.08", \r
497             \r
498             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMy", "10.10.07 - 10.10.08", \r
499             \r
500             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dM", "10.10.07 - 10.10.08", \r
501             \r
502             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "My", "10.07 - 10.08", \r
503             \r
504             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdM", "Mi., 10.10.07 - Fr., 10.10.08", \r
505             \r
506             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "d", "10.10.07 - 10.10.08", \r
507             \r
508             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "y", "2007-2008", \r
509             \r
510             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "M", "10.07 - 10.08", \r
511             \r
512             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMM", "Okt 2007 - Okt 2008", \r
513             \r
514             "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
515             \r
516             "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
517 \r
518             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMy", "Mittwoch, 10. Okt - Samstag, 10. Nov 2007", \r
519             \r
520             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMy", "10. Okt - 10. Nov 2007", \r
521             \r
522             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMM", "10. Okt - 10. Nov", \r
523             \r
524             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMy", "Okt-Nov 2007", \r
525             \r
526             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMM", "Mittwoch, 10. Okt - Samstag, 10. Nov", \r
527             \r
528             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMy", "Mi., 10.10.07 - Sa., 10.11.07", \r
529             \r
530             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dM", "10.10. - 10.11.", \r
531             \r
532             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "My", "10.07 - 11.07", \r
533             \r
534             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdM", "Mi., 10.10. - Sa., 10.11.", \r
535             \r
536             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "d", "10.10. - 10.11.", \r
537             \r
538             \r
539             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "M", "10.-11.", \r
540             \r
541             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMM", "Okt-Nov", \r
542             \r
543             "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
544             \r
545             "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
546 \r
547             "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
548             \r
549             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMy", "Samstag, 10. - Dienstag, 20. Nov 2007", \r
550             \r
551             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMy", "10.-20. Nov 2007", \r
552             \r
553             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMM", "10.-20. Nov", \r
554             \r
555             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMy", "Nov 2007", \r
556             \r
557             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMM", "Samstag, 10. - Dienstag, 20. Nov", \r
558             \r
559             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sa., 10.11.07 - Di., 20.11.07", \r
560             \r
561             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "10.11.07 - 20.11.07", \r
562             \r
563             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "10.11. - 20.11.", \r
564             \r
565             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "11.2007", \r
566             \r
567             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "Sa., 10.11. - Di., 20.11.", \r
568             \r
569             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10.-20.", \r
570             \r
571             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007", \r
572             \r
573             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11", \r
574             \r
575             "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
576             \r
577             "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
578 \r
579             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMy", "Mittwoch, 10. Jan 2007", \r
580             \r
581             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMy", "10. Jan 2007", \r
582             \r
583             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMM", "10. Jan", \r
584             \r
585             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMy", "Jan 2007", \r
586             \r
587             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMM", "Mittwoch 10. Jan", \r
588             \r
589             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmz", "10:00 vorm. - 2:10 nachm. GMT-08:00", \r
590             \r
591             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10 vorm. - 2 nachm.", \r
592             \r
593             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EEEEdMMM", "Mittwoch 10. Jan", \r
594             \r
595             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "10:00-10:20 vorm.", \r
596             \r
597             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "10:00-10:20 vorm. Vereinigte Staaten (Los Angeles)", \r
598             \r
599             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmz", "10:00-10:20 vorm. GMT-08:00", \r
600             \r
601             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10 vorm.", \r
602             \r
603             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hv", "10 vorm. Vereinigte Staaten (Los Angeles)", \r
604             \r
605             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "10 vorm. GMT-08:00", \r
606             \r
607             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMy", "Mittwoch, 10. Jan 2007", \r
608             \r
609             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "10:10 vorm.", \r
610 \r
611             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "jm", "10:10", \r
612 \r
613             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmv", "10:10 vorm. Vereinigte Staaten (Los Angeles)", \r
614             \r
615             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "jmv", "10:10 Vereinigte Staaten (Los Angeles)", \r
616 \r
617             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 vorm. GMT-08:00", \r
618             \r
619             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "jmz", "10:10 GMT-08:00", \r
620 \r
621             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "10 vorm.", \r
622             \r
623             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hv", "10 vorm. Vereinigte Staaten (Los Angeles)", \r
624             \r
625             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hz", "10 vorm. GMT-08:00", \r
626         \r
627             // Thai (default calendar buddhist)\r
628 \r
629             "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "EEEEdMMMy", "\\u0E27\\u0E31\\u0E19\\u0E1E\\u0E38\\u0E18 10 \\u0E15.\\u0E04. 2550 \\u2013 \\u0E27\\u0E31\\u0E19\\u0E28\\u0E38\\u0E01\\u0E23\\u0E4C 10 \\u0E15.\\u0E04. 2551", \r
630         \r
631         \r
632             "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "dMMM", "10 \\u0E15.\\u0E04. 2550 \\u2013 10 \\u0E15.\\u0E04. 2551", \r
633         \r
634             "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "MMMy", "\\u0E15.\\u0E04. 2550 - \\u0E15.\\u0E04. 2551", \r
635         \r
636         \r
637             "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "EdMy", "\\u0E1E. 10/10/50 \\u2013 \\u0E28. 10/10/51", \r
638         \r
639             "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "dMy", "10/10/50 \\u2013 10/10/51", \r
640         \r
641         \r
642             "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "My", "10/50 \\u2013 10/51", \r
643         \r
644             "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "EdM", "\\u0E1E. 10/10/50 \\u2013 \\u0E28. 10/10/51", \r
645         \r
646         \r
647             "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "y", "2550-2551", \r
648         \r
649             "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "M", "10/50 \\u2013 10/51", \r
650         \r
651         \r
652             "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "EEEEdMMMy", "\\u0E27\\u0E31\\u0E19\\u0E1E\\u0E38\\u0E18 10 \\u0E15.\\u0E04. \\u2013 \\u0E27\\u0E31\\u0E19\\u0E40\\u0E2A\\u0E32\\u0E23\\u0E4C 10 \\u0E1E.\\u0E22. 2550", \r
653         \r
654         \r
655             "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "dMMM", "10 \\u0E15.\\u0E04. \\u2013 10 \\u0E1E.\\u0E22.", \r
656         \r
657             "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "MMMy", "\\u0E15.\\u0E04.-\\u0E1E.\\u0E22. 2550", \r
658         \r
659             "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "dM", "10/10 - 10/11", \r
660         \r
661             "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "My", "10/50 \\u2013 11/50", \r
662         \r
663         \r
664             "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "d", "10/10 - 10/11", \r
665         \r
666             "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "y", "2550", \r
667         \r
668         \r
669             "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "MMM", "\\u0E15.\\u0E04.-\\u0E1E.\\u0E22.", \r
670 \r
671         };\r
672         expect(DATA, DATA.length);\r
673     }\r
674 \r
675 \r
676     private void expect(String[] data, int data_length) {\r
677         int i = 1;\r
678         while (i<data_length) {\r
679             String locName = data[i++];\r
680             ULocale loc = new ULocale(locName);\r
681             SimpleDateFormat ref = new SimpleDateFormat(data[0], loc);\r
682             // 'f'\r
683             String datestr = data[i++];\r
684             String datestr_2 = data[i++];\r
685             Date date, date_2;\r
686             try {\r
687                 date = ref.parse(datestr);\r
688                 date_2 = ref.parse(datestr_2);\r
689             } catch ( ParseException e ) {\r
690                 errln("parse exception" + e);\r
691                 continue;\r
692             }\r
693             DateInterval dtitv = new DateInterval(date.getTime(), \r
694                                                   date_2.getTime());\r
695             String oneSkeleton = data[i++];\r
696             DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(\r
697                                               oneSkeleton, loc);\r
698             String expected = data[i++];\r
699             String formatted = dtitvfmt.format(dtitv);\r
700             if ( !formatted.equals(Utility.unescape(expected)) )  {\r
701                 errln("\"" + locName + "\\" + oneSkeleton + "\\" + datestr + "\\" + datestr_2 + "\"\t expected: " + expected +"\tgot: " + formatted + "\n");\r
702             }\r
703         }\r
704     }\r
705 \r
706 \r
707     /* \r
708      * Test format using user defined DateIntervalInfo\r
709      */\r
710     public void TestFormatUserDII() {\r
711         // first item is date pattern\r
712         // followed by a group of locale/from_data/to_data/interval_data\r
713         String[] DATA = {\r
714             "yyyy MM dd HH:mm:ss",    \r
715             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Oct 10, 2007 --- Oct 10, 2008", \r
716             \r
717             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 Oct 10 - Nov 2007", \r
718             \r
719             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Nov 10, 2007 --- Nov 20, 2007", \r
720             \r
721             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Jan 10, 2007", \r
722             \r
723             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "Jan 10, 2007", \r
724             \r
725             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Jan 10, 2007", \r
726             \r
727             "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "2007\\u5e7410\\u670810\\u65e5 --- 2008\\u5e7410\\u670810\\u65e5", \r
728             \r
729             \r
730             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007\\u5e7411\\u670810\\u65e5 --- 2007\\u5e7411\\u670820\\u65e5", \r
731             \r
732             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "2007\\u5e741\\u670810\\u65e5", // (fixed expected result per ticket 6872<-6626)\r
733             \r
734             "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "2007\\u5e741\\u670810\\u65e5", // (fixed expected result per ticket 6872<-6626)\r
735             \r
736             "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "2007\\u5e741\\u670810\\u65e5", // (fixed expected result per ticket 6872<-6626)\r
737             \r
738             "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "10. Okt 2007 --- 10. Okt 2008", \r
739             \r
740             "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 Okt 10 - Nov 2007", \r
741             \r
742             "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "10. Nov 2007 --- 20. Nov 2007", \r
743             \r
744             "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "10. Jan 2007", \r
745             \r
746             "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "10. Jan 2007", \r
747             \r
748             "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "10. Jan 2007", \r
749             \r
750             "es", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "10 de oct de 2007 --- 10 de oct de 2008", \r
751             \r
752             "es", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 oct 10 - nov 2007", \r
753             \r
754             "es", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "10 de nov de 2007 --- 20 de nov de 2007", \r
755             \r
756             "es", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "10 de ene de 2007", \r
757             \r
758             "es", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "10 de ene de 2007", \r
759             \r
760             "es", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "10 de ene de 2007", \r
761         };\r
762         expectUserDII(DATA, DATA.length);\r
763     }\r
764     \r
765     \r
766     private void expectUserDII(String[] data, int data_length) {\r
767         int i = 1;\r
768         while (i<data_length) {\r
769             String locName = data[i++];\r
770             ULocale loc = new ULocale(locName);\r
771             SimpleDateFormat ref = new SimpleDateFormat(data[0], loc);\r
772             // 'f'\r
773             String datestr = data[i++];\r
774             String datestr_2 = data[i++];\r
775             Date date, date_2;\r
776             try {\r
777                 date = ref.parse(datestr);\r
778                 date_2 = ref.parse(datestr_2);\r
779             } catch ( ParseException e ) {\r
780                 errln("parse exception" + e);\r
781                 continue;\r
782             }\r
783             DateInterval dtitv = new DateInterval(date.getTime(), \r
784                                                   date_2.getTime());\r
785 \r
786             DateIntervalInfo dtitvinf = new DateIntervalInfo();\r
787             dtitvinf.setFallbackIntervalPattern("{0} --- {1}");\r
788             dtitvinf.setIntervalPattern("yMMMd", Calendar.MONTH, "yyyy MMM d - MMM y");\r
789             dtitvinf.setIntervalPattern("yMMMd", Calendar.HOUR_OF_DAY, "yyyy MMM d HH:mm - HH:mm");\r
790             DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(\r
791                         DateFormat.YEAR_ABBR_MONTH_DAY,\r
792                         loc, dtitvinf);\r
793             String expected = data[i++];\r
794             String formatted = dtitvfmt.format(dtitv);\r
795             if ( !formatted.equals(Utility.unescape(expected)) )  {\r
796                 errln("userDII: \"" + locName + "\\" + datestr + "\\" + datestr_2 + "\"\t expected: " + expected +"\tgot: " + formatted + "\n");\r
797             }\r
798         }\r
799     }\r
800 \r
801 \r
802 \r
803     /* \r
804      * Test format using user defined DateIntervalInfo\r
805      */\r
806     public void TestFormatCLDR() {\r
807         // first item is date pattern\r
808         // followed by a group of locale/from_data/to_data/interval_data\r
809         String[] DATA = {\r
810             "yyyy MM dd HH:mm:ss",    \r
811             "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "all diff", \r
812             \r
813             "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 diff Oct 10 - Nov 2007", \r
814             \r
815             "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007 Nov 10 ~ 20", \r
816             \r
817             "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Jan 10, 2007", \r
818             \r
819             "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "Jan 10, 2007", \r
820             \r
821             "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Jan 10, 2007", \r
822             \r
823             "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "all diff", \r
824             \r
825             "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 diff 10\\u6708 10 - 11\\u6708 2007", \r
826             \r
827             "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007 11\\u6708 10 ~ 20", \r
828             \r
829             "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "2007\u5E741\\u670810\u65E5", // (fixed expected result per ticket 6872<-6626)\r
830             \r
831             "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "2007\u5E741\\u670810\u65E5", // (fixed expected result per ticket 6872<-6626)\r
832             \r
833             "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "2007\u5E741\\u670810\u65E5", // (fixed expected result per ticket 6872<-6626)\r
834         };\r
835         expectUserCLDR(DATA, DATA.length);\r
836     }\r
837     \r
838     \r
839     private void expectUserCLDR(String[] data, int data_length) {\r
840         int i = 1;\r
841         while (i<data_length) {\r
842             String locName = data[i++];\r
843             ULocale loc = new ULocale(locName);\r
844             SimpleDateFormat ref = new SimpleDateFormat(data[0], loc);\r
845             // 'f'\r
846             String datestr = data[i++];\r
847             String datestr_2 = data[i++];\r
848             Date date, date_2;\r
849             try {\r
850                 date = ref.parse(datestr);\r
851                 date_2 = ref.parse(datestr_2);\r
852             } catch ( ParseException e ) {\r
853                 errln("parse exception" + e);\r
854                 continue;\r
855             }\r
856             DateInterval dtitv = new DateInterval(date.getTime(), \r
857                                                   date_2.getTime());\r
858 \r
859             DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance("yyyyMMMdd", loc);\r
860             //DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance("yMd");\r
861             //SimpleDateFormat dtfmt = new SimpleDateFormat("yyyy 'year' MMM 'month' dd 'day'", loc);\r
862             //dtitvfmt.setDateFormat(dtfmt);\r
863             DateIntervalInfo dtitvinf = new DateIntervalInfo();\r
864             dtitvinf.setFallbackIntervalPattern("{0} --- {1}");\r
865             dtitvinf.setIntervalPattern("yMMMd", Calendar.YEAR, "'all diff'");\r
866             dtitvinf.setIntervalPattern("yMMMd", Calendar.MONTH, "yyyy 'diff' MMM d - MMM y");\r
867             dtitvinf.setIntervalPattern("yMMMd", Calendar.DATE, "yyyy MMM d ~ d");\r
868             dtitvinf.setIntervalPattern("yMMMd", Calendar.HOUR_OF_DAY, "yyyy MMMd HH:mm ~ HH:mm");\r
869             dtitvfmt.setDateIntervalInfo(dtitvinf);\r
870             FieldPosition pos = new FieldPosition(0);\r
871             StringBuffer str = new StringBuffer("");\r
872             DateFormat dtfmt = dtitvfmt.getDateFormat();\r
873             Calendar fromCalendar = (Calendar) dtfmt.getCalendar().clone();\r
874             Calendar toCalendar = (Calendar) dtfmt.getCalendar().clone();\r
875             fromCalendar.setTimeInMillis(dtitv.getFromDate());\r
876             toCalendar.setTimeInMillis(dtitv.getToDate());\r
877             dtitvfmt.format(fromCalendar, toCalendar, str, pos);\r
878 \r
879             String expected = data[i++];\r
880             String formatted = dtitvfmt.format(dtitv).toString();\r
881             if ( !formatted.equals(Utility.unescape(expected)) )  {\r
882                 errln("CLDR: \"" + locName + "\\" + datestr + "\\" + datestr_2 + "\"\t expected: " + expected +"\tgot: " + formatted + "\n");\r
883             }\r
884         }\r
885     }\r
886 \r
887 \r
888     /**\r
889      * Stress test\r
890      */\r
891     public void TestStress() {\r
892         if (getInclusion() <= 5) {\r
893             logln("INFO: Skipping test");\r
894             return;\r
895         }\r
896 \r
897         // test data.\r
898         // The 1st is the format pattern,\r
899         // Next are pairs in which the 1st in the pair is the earlier date\r
900         // and the 2nd in the pair is the later date\r
901         String[] DATA = {\r
902             "yyyy MM dd HH:mm:ss",\r
903             "2007 10 10 10:10:10", "2008 10 10 10:10:10", \r
904             "2007 10 10 10:10:10", "2007 11 10 10:10:10", \r
905             "2007 11 10 10:10:10", "2007 11 20 10:10:10", \r
906             "2007 01 10 10:00:10", "2007 01 10 14:10:10", \r
907             "2007 01 10 10:00:10", "2007 01 10 10:20:10", \r
908             "2007 01 10 10:10:10", "2007 01 10 10:10:20", \r
909         };\r
910 \r
911 \r
912         String[][] testLocale = {\r
913             {"en", "", ""},\r
914             {"zh", "", ""},\r
915             {"de", "", ""},\r
916             {"ar", "", ""},\r
917             {"en", "GB",  ""},\r
918             {"fr", "", ""},\r
919             {"it", "", ""},\r
920             {"nl", "", ""},\r
921             {"zh", "TW",  ""},\r
922             {"ja", "", ""},\r
923             {"pt", "BR", ""},\r
924             {"ru", "", ""},\r
925             {"tr", "", ""},\r
926             {"es", "", ""},\r
927             {"ko", "", ""},\r
928             //{"th", "", ""},\r
929             {"sv", "", ""},\r
930             {"pl", "", ""},\r
931             {"fi", "", ""},\r
932             {"da", "", ""},\r
933             {"pt", "PT", ""},\r
934             {"ro", "", ""},\r
935             {"hu", "", ""},\r
936             {"he", "", ""},\r
937             {"in", "", ""},\r
938             {"cs", "", ""},\r
939             {"el", "", ""},\r
940             {"no", "", ""},\r
941             {"vi", "", ""},\r
942             {"bg", "", ""},\r
943             {"hr", "", ""},\r
944             {"lt", "", ""},\r
945             {"sk", "", ""},\r
946             {"sl", "", ""},\r
947             {"sr", "", ""},\r
948             {"ca", "", ""},\r
949             {"lv", "", ""},\r
950             {"uk", "", ""},\r
951             {"hi", "", ""},\r
952         };\r
953 \r
954         int localeIndex;\r
955         for ( localeIndex = 0; localeIndex < testLocale.length; ++localeIndex) {\r
956             stress(DATA, DATA.length, new Locale(testLocale[localeIndex][0], \r
957                    testLocale[localeIndex][1], testLocale[localeIndex][2]), \r
958                    testLocale[localeIndex][0]+testLocale[localeIndex][1]);\r
959         }\r
960     }\r
961 \r
962     private void stress(String[] data, int data_length, Locale loc, String locName) {\r
963         String[] skeleton = {\r
964             "EEEEdMMMMy",\r
965             "dMMMMy",\r
966             "dMMMM",\r
967             "MMMMy",\r
968             "EEEEdMMMM",\r
969             "EEEdMMMy",\r
970             "dMMMy",\r
971             "dMMM",\r
972             "MMMy",\r
973             "EEEdMMM",\r
974             "EEEdMy",\r
975             "dMy",\r
976             "dM",\r
977             "My",\r
978             "EEEdM",\r
979             "d",\r
980             "EEEd",\r
981             "y",\r
982             "M",\r
983             "MMM",\r
984             "MMMM",\r
985             "hm",\r
986             "hmv",\r
987             "hmz",\r
988             "h",\r
989             "hv",\r
990             "hz",\r
991             "EEddMMyyyy", // following could be normalized\r
992             "EddMMy", \r
993             "hhmm",\r
994             "hhmmzz",\r
995             "hms",  // following could not be normalized\r
996             "dMMMMMy",\r
997             "EEEEEdM",\r
998         };\r
999 \r
1000         int i = 0;\r
1001 \r
1002         SimpleDateFormat ref = new SimpleDateFormat(data[i++], loc);\r
1003 \r
1004         while (i<data_length) {\r
1005             // 'f'\r
1006             String datestr = data[i++];\r
1007             String datestr_2 = data[i++];\r
1008             Date date;\r
1009             Date date_2;\r
1010             try {\r
1011                 date = ref.parse(datestr);\r
1012                 date_2 = ref.parse(datestr_2);\r
1013             } catch ( ParseException e ) {\r
1014                 errln("parse exception" + e);\r
1015                 continue;\r
1016             }\r
1017             DateInterval dtitv = new DateInterval(date.getTime(), date_2.getTime());\r
1018 \r
1019             for ( int skeletonIndex = 0; \r
1020                   skeletonIndex < skeleton.length; \r
1021                   ++skeletonIndex ) {\r
1022                 String oneSkeleton = skeleton[skeletonIndex];\r
1023                 // need special handle of "Thai" since the default calendar\r
1024                 // of "Thai" is "Budd", not "Gregorian".\r
1025                 DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(oneSkeleton, loc);\r
1026                 /*\r
1027                 if ( locName.equals("th") ) {\r
1028                     // reset calendar to be Gregorian\r
1029                     GregorianCalendar gregCal = new GregorianCalendar(loc);\r
1030                     DateFormat dformat = dtitvfmt.getDateFormat();\r
1031                     DateFormat newOne = (DateFormat)dformat.clone();\r
1032                     newOne.setCalendar(gregCal);\r
1033                     dtitvfmt.setDateFormat(newOne);\r
1034                 }\r
1035                 */\r
1036                 dtitvfmt.format(dtitv);\r
1037             }\r
1038 \r
1039 \r
1040             // test interval format by algorithm \r
1041             for ( int style = DateFormat.FULL; style  < 4; ++style ) {\r
1042                 SimpleDateFormat dtfmt = (SimpleDateFormat) DateFormat.getDateInstance(style, loc);\r
1043                 FieldPosition pos = new FieldPosition(0);\r
1044                 StringBuffer str = new StringBuffer("");\r
1045                 Calendar fromCalendar = (Calendar) dtfmt.getCalendar().clone();\r
1046                 Calendar toCalendar = (Calendar) dtfmt.getCalendar().clone();\r
1047                 fromCalendar.setTimeInMillis(dtitv.getFromDate());\r
1048                 toCalendar.setTimeInMillis(dtitv.getToDate());\r
1049                 dtfmt.intervalFormatByAlgorithm(fromCalendar, toCalendar, str, pos);\r
1050             } \r
1051         } \r
1052     }\r
1053 \r
1054     /*\r
1055      * Ticket#6396 DateIntervalInfo of ICU4J 4.0d3 throw NullPointerException \r
1056      */\r
1057     public void TestT6396() {\r
1058         DateIntervalInfo dii = new DateIntervalInfo(new ULocale("th_TH"));\r
1059         try {\r
1060             // ticket#6396 reported toString() throws NullPointerException\r
1061             String diiStr = dii.toString();\r
1062             logln("new DateIntervalInfo(new ULocale(\"th_TH\")).toString() - " + diiStr);\r
1063 \r
1064             // equals also had the similar problem\r
1065             DateIntervalInfo dii1 = (DateIntervalInfo)dii.clone();\r
1066             if (!dii.equals(dii1)) {\r
1067                 errln("FAIL: Cloned DateIntervalInfo is not equal to the source");\r
1068             }\r
1069         } catch (Exception e) {\r
1070             errln("FAIL: Exception - " + e.getClass().getName());\r
1071         }\r
1072     }\r
1073     \r
1074     /* Tests the method\r
1075      *      public boolean equals(Object a)\r
1076      */\r
1077     public void TestDateIntervalInfoEquals(){\r
1078         // Tests when "if ( a instanceof PatternInfo )" is false\r
1079         DateIntervalInfo diia = new DateIntervalInfo();\r
1080         if(diia.equals("dummy")){\r
1081             errln("DateIntervalInfo.equals(Object a) was suppose to return " +\r
1082                     "false for a String object.");\r
1083         }\r
1084         if(diia.equals(0)){\r
1085             errln("DateIntervalInfo.equals(Object a) was suppose to return " +\r
1086                     "false for an Integer object.");\r
1087         }\r
1088         if(diia.equals(0.0)){\r
1089             errln("DateIntervalInfo.equals(Object a) was suppose to return " +\r
1090                     "false for an Integer object.");\r
1091         }\r
1092         if(diia.equals(new Object())){\r
1093             errln("DateIntervalInfo.equals(Object a) was suppose to return " +\r
1094                     "false for an Integer object.");\r
1095         }\r
1096     }\r
1097     \r
1098     /* Tests the method\r
1099      *      public Object cloneAsThawed()\r
1100      */\r
1101     public void TestCloseAsThawed(){\r
1102         DateIntervalInfo dii = new DateIntervalInfo();\r
1103         try{\r
1104             dii.cloneAsThawed();\r
1105         } catch(Exception e){\r
1106             errln("DateIntervalInfo.closeAsThawed() was not suppose to return " +\r
1107                     "an exception.");\r
1108         }\r
1109     }\r
1110     \r
1111     /* Tests the method\r
1112      *      public boolean isFrozen()\r
1113      */\r
1114     public void TestIsFrozen(){\r
1115         DateIntervalInfo dii = new DateIntervalInfo();\r
1116         if(dii.isFrozen() != false){\r
1117             errln("DateIntervalInfo.isFrozen() is suppose to return false.");\r
1118         }\r
1119         dii.freeze();\r
1120         \r
1121         if(dii.isFrozen() != true){\r
1122             errln("DateIntervalInfo.isFrozen() is suppose to return true.");\r
1123         }\r
1124     }\r
1125     \r
1126     /* Tests the method\r
1127      *      public boolean clone()\r
1128      */\r
1129     public void TestClone(){\r
1130         DateIntervalInfo dii = new DateIntervalInfo(new ULocale("en_US"));\r
1131         DateIntervalInfo dii_clone = (DateIntervalInfo) dii.clone();\r
1132         dii_clone.freeze();\r
1133         \r
1134         // Tests when "if ( frozen )" is true\r
1135         if(!dii.equals(dii_clone)){\r
1136             errln("DateIntervalInfo.clone() is suppose to return true for " +\r
1137                     "an original DateIntervalInfo object and a clone of the " +\r
1138                     "original DateIntervalInfo object.");\r
1139         }\r
1140     }\r
1141     \r
1142     /* Tests the method\r
1143      *      public void setFallbackIntervalPattern(String fallbackPattern)\r
1144      */\r
1145     public void TestSetFallbackIntervalPattern(){\r
1146         DateIntervalInfo dii = new DateIntervalInfo(new ULocale("en_US"));\r
1147         // Tests when "if ( frozen )" is true\r
1148         try{\r
1149             dii.freeze();\r
1150             dii.setFallbackIntervalPattern("");\r
1151             errln("DateIntervalInfo.setFallbackIntervalPattern(String fallbackPattern) " +\r
1152                     "was suppose to return an exception for a frozen object.");\r
1153         } catch (Exception e){}\r
1154         \r
1155         // Tests when "if ( firstPatternIndex == -1 || secondPatternIndex == -1 )" is true\r
1156         dii = (DateIntervalInfo) dii.cloneAsThawed();\r
1157         try{\r
1158             dii.setFallbackIntervalPattern("");\r
1159             errln("DateIntervalInfo.setFallbackIntervalPattern(String fallbackPattern) " +\r
1160                     "was suppose to return an exception for a string object of ''.");\r
1161         } catch(Exception e){}\r
1162         \r
1163         try{\r
1164             dii.setFallbackIntervalPattern("0");\r
1165             errln("DateIntervalInfo.setFallbackIntervalPattern(String fallbackPattern) " +\r
1166                     "was suppose to return an exception for a string object of 0.");\r
1167         } catch(Exception e){}\r
1168         \r
1169         // Tests when "if ( firstPatternIndex > secondPatternIndex )" is true\r
1170         dii.setFallbackIntervalPattern("{1}{0}");\r
1171         if(dii.getDefaultOrder() != true)\r
1172             errln("DateIntervalInfo.setFallbackIntervalPattern(String fallbackPattern) " +\r
1173                     "was suppose to change the variable 'fFirstDateInPtnIsLaterDate' " +\r
1174                     "to true.");\r
1175     }\r
1176     \r
1177     /* Tests the method\r
1178      *      public PatternInfo getIntervalPattern(String skeleton, int field)\r
1179      */\r
1180     public void TestGetIntervalPattern(){\r
1181         // Tests when "if ( field > MINIMUM_SUPPORTED_CALENDAR_FIELD )" is true\r
1182         // MINIMUM_SUPPORTED_CALENDAR_FIELD = Calendar.MINUTE;\r
1183         DateIntervalInfo dii = new DateIntervalInfo();\r
1184         try{\r
1185             dii.getIntervalPattern("", Calendar.MINUTE+1);\r
1186             errln("DateIntervalInfo.getIntervalPattern(String,int) was suppose " +\r
1187                     "to return an exception for the 'int field' parameter " +\r
1188                     "when it exceeds MINIMUM_SUPPORTED_CALENDAR_FIELD.");\r
1189         } catch(Exception e){}\r
1190     }\r
1191     \r
1192     /* Tests the method\r
1193      *      public void setIntervalPattern(String skeleton, int lrgDiffCalUnit, String intervalPattern)\r
1194      */\r
1195     public void TestSetIntervalPattern(){\r
1196         DateIntervalInfo dii = new DateIntervalInfo();\r
1197         // Tests when "if ( frozen )" is true\r
1198         try{\r
1199             dii.freeze();\r
1200             dii.setIntervalPattern("", 0, "");\r
1201             errln("DateIntervalInfo.setIntervalPattern(String,int,String) " +\r
1202                     "was suppose to return an exception when the " +\r
1203                     "DateIntervalInfo object is frozen.");\r
1204         } catch(Exception e){}\r
1205         \r
1206         // Tests when "if ( lrgDiffCalUnit > MINIMUM_SUPPORTED_CALENDAR_FIELD )" is true\r
1207         // MINIMUM_SUPPORTED_CALENDAR_FIELD = Calendar.MINUTE;\r
1208         try{\r
1209             dii = (DateIntervalInfo) dii.cloneAsThawed();\r
1210             dii.setIntervalPattern("", Calendar.MINUTE+1, "");\r
1211             errln("DateIntervalInfo.setIntervalPattern(String,int,String) " +\r
1212                     "was suppose to return an exception when the " +\r
1213                     "variable 'lrgDiffCalUnit' is greater than " + \r
1214                     "MINIMUM_SUPPORTED_CALENDAR_FIELD.");\r
1215         } catch(Exception e){}\r
1216     }\r
1217     \r
1218     /* Tests the method\r
1219      *      public int hashCode()\r
1220      */\r
1221     public void TestHashCode(){\r
1222         // Tests when\r
1223         //      "int hash = fIntervalPatternFirstPart != null ? fIntervalPatternFirstPart.hashCode() : 0;"\r
1224         // is false\r
1225         PatternInfo dp = new PatternInfo(null, null, false);\r
1226         if(dp.hashCode() != 0){\r
1227             errln("PatternInfo.hashCode() was suppose to return 0 for a null " +\r
1228                     "paramter in the constructor.");\r
1229         }\r
1230     }\r
1231     \r
1232     /* Tests the method\r
1233      *      public boolean equals(Object a)\r
1234      * in PatternInfo\r
1235      */\r
1236     public void TestPattternInfoEquals(){\r
1237         // Tests when "if ( a instanceof PatternInfo )" is false\r
1238         PatternInfo pi = new PatternInfo("","", false);\r
1239         if(pi.equals(new Object())){\r
1240             errln("PatternInfo.equals(Object) is suppose to return false " +\r
1241                     "when it is not an instance of PatternInfo.");\r
1242         }\r
1243         if(pi.equals("")){\r
1244             errln("PatternInfo.equals(Object) is suppose to return false " +\r
1245                     "when it is not an instance of PatternInfo.");\r
1246         }\r
1247         if(pi.equals(0)){\r
1248             errln("PatternInfo.equals(Object) is suppose to return false " +\r
1249                     "when it is not an instance of PatternInfo.");\r
1250         }\r
1251         if(pi.equals(0.0)){\r
1252             errln("PatternInfo.equals(Object) is suppose to return false " +\r
1253                     "when it is not an instance of PatternInfo.");\r
1254         }\r
1255     }\r
1256 }\r