]> git.saurik.com Git - apple/icu.git/blame - icuSources/test/intltest/dtifmtts.cpp
ICU-461.12.tar.gz
[apple/icu.git] / icuSources / test / intltest / dtifmtts.cpp
CommitLineData
46f4442e
A
1
2/********************************************************************
3 * COPYRIGHT:
729e4ab9 4 * Copyright (c) 1997-2010, International Business Machines Corporation and
46f4442e
A
5 * others. All Rights Reserved.
6 ********************************************************************/
7
8#include "unicode/utypes.h"
9
10#if !UCONFIG_NO_FORMATTING
11
12
13//TODO: define it in compiler flag
14//#define DTIFMTTS_DEBUG 1
15
16
46f4442e 17#ifdef DTIFMTTS_DEBUG
729e4ab9 18#include <iostream>
46f4442e
A
19#endif
20
21
22#include "cstring.h"
23#include "dtifmtts.h"
24#include "unicode/gregocal.h"
25#include "unicode/dtintrv.h"
26#include "unicode/dtitvinf.h"
27#include "unicode/dtitvfmt.h"
28
29
30
31#ifdef DTIFMTTS_DEBUG
32//#define PRINTMESG(msg) { std::cout << "(" << __FILE__ << ":" << __LINE__ << ") " << msg << "\n"; }
33#define PRINTMESG(msg) { std::cout << msg; }
34#endif
35
36#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
37
38#include <stdio.h>
39
40
41void DateIntervalFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ ) {
42 if (exec) logln("TestSuite DateIntervalFormat");
43 switch (index) {
44 TESTCASE(0, testAPI);
45 TESTCASE(1, testFormat);
46 TESTCASE(2, testFormatUserDII);
47 TESTCASE(3, testStress);
48 default: name = ""; break;
49 }
50}
51
52/**
53 * Test various generic API methods of DateIntervalFormat for API coverage.
54 */
55void DateIntervalFormatTest::testAPI() {
56
57 /* ====== Test create interval instance with default locale and skeleton
58 */
59 UErrorCode status = U_ZERO_ERROR;
60 logln("Testing DateIntervalFormat create instance with default locale and skeleton");
61
62 DateIntervalFormat* dtitvfmt = DateIntervalFormat::createInstance(UDAT_YEAR_MONTH_DAY, status);
63 if(U_FAILURE(status)) {
64 dataerrln("ERROR: Could not create DateIntervalFormat (skeleton + default locale) - exitting");
65 return;
66 } else {
67 delete dtitvfmt;
68 }
69
70
71 /* ====== Test create interval instance with given locale and skeleton
72 */
73 status = U_ZERO_ERROR;
74 logln("Testing DateIntervalFormat create instance with given locale and skeleton");
75
76 dtitvfmt = DateIntervalFormat::createInstance(UDAT_YEAR_MONTH_DAY, Locale::getJapanese(), status);
77 if(U_FAILURE(status)) {
78 dataerrln("ERROR: Could not create DateIntervalFormat (skeleton + locale) - exitting");
79 return;
80 } else {
81 delete dtitvfmt;
82 }
83
84
85 /* ====== Test create interval instance with dateIntervalInfo and skeleton
86 */
87 status = U_ZERO_ERROR;
88 logln("Testing DateIntervalFormat create instance with dateIntervalInfo and skeleton");
89
90 DateIntervalInfo* dtitvinf = new DateIntervalInfo(Locale::getSimplifiedChinese(), status);
91
92 dtitvfmt = DateIntervalFormat::createInstance("EEEdMMMyhms", *dtitvinf, status);
93 delete dtitvinf;
94
95 if(U_FAILURE(status)) {
96 dataerrln("ERROR: Could not create DateIntervalFormat (skeleton + DateIntervalInfo + default locale) - exitting");
97 return;
98 } else {
99 delete dtitvfmt;
100 }
101
102
103 /* ====== Test create interval instance with dateIntervalInfo and skeleton
104 */
105 status = U_ZERO_ERROR;
106 logln("Testing DateIntervalFormat create instance with dateIntervalInfo and skeleton");
107
108 dtitvinf = new DateIntervalInfo(Locale::getSimplifiedChinese(), status);
109
110 dtitvfmt = DateIntervalFormat::createInstance("EEEdMMMyhms", Locale::getSimplifiedChinese(), *dtitvinf, status);
111 delete dtitvinf;
112 if(U_FAILURE(status)) {
113 dataerrln("ERROR: Could not create DateIntervalFormat (skeleton + DateIntervalInfo + locale) - exitting");
114 return;
115 }
116 // not deleted, test clone
117
118
119 // ====== Test clone()
120 status = U_ZERO_ERROR;
121 logln("Testing DateIntervalFormat clone");
122
123 DateIntervalFormat* another = (DateIntervalFormat*)dtitvfmt->clone();
124 if ( (*another) != (*dtitvfmt) ) {
125 dataerrln("ERROR: clone failed");
126 }
127
729e4ab9 128
46f4442e
A
129 // ====== Test getDateIntervalInfo, setDateIntervalInfo, adoptDateIntervalInfo
130 status = U_ZERO_ERROR;
131 logln("Testing DateIntervalFormat getDateIntervalInfo");
132 const DateIntervalInfo* inf = another->getDateIntervalInfo();
133 dtitvfmt->setDateIntervalInfo(*inf, status);
134 const DateIntervalInfo* anotherInf = dtitvfmt->getDateIntervalInfo();
135 if ( (*inf) != (*anotherInf) || U_FAILURE(status) ) {
136 dataerrln("ERROR: getDateIntervalInfo/setDateIntervalInfo failed");
137 }
138
139 /*
140 status = U_ZERO_ERROR;
141 DateIntervalInfo* nonConstInf = inf->clone();
142 dtitvfmt->adoptDateIntervalInfo(nonConstInf, status);
143 anotherInf = dtitvfmt->getDateIntervalInfo();
144 if ( (*inf) != (*anotherInf) || U_FAILURE(status) ) {
145 dataerrln("ERROR: adoptDateIntervalInfo failed");
146 }
147 */
148
149 // ====== Test getDateFormat, setDateFormat, adoptDateFormat
150
151 status = U_ZERO_ERROR;
152 logln("Testing DateIntervalFormat getDateFormat");
46f4442e 153 /*
729e4ab9 154 const DateFormat* fmt = another->getDateFormat();
46f4442e
A
155 dtitvfmt->setDateFormat(*fmt, status);
156 const DateFormat* anotherFmt = dtitvfmt->getDateFormat();
157 if ( (*fmt) != (*anotherFmt) || U_FAILURE(status) ) {
158 dataerrln("ERROR: getDateFormat/setDateFormat failed");
159 }
160
161 status = U_ZERO_ERROR;
162 DateFormat* nonConstFmt = (DateFormat*)fmt->clone();
163 dtitvfmt->adoptDateFormat(nonConstFmt, status);
164 anotherFmt = dtitvfmt->getDateFormat();
165 if ( (*fmt) != (*anotherFmt) || U_FAILURE(status) ) {
166 dataerrln("ERROR: adoptDateFormat failed");
167 }
729e4ab9 168 delete fmt;
46f4442e
A
169 */
170
171
172 // ======= Test getStaticClassID()
173
174 logln("Testing getStaticClassID()");
175
176
177 if(dtitvfmt->getDynamicClassID() != DateIntervalFormat::getStaticClassID()) {
178 errln("ERROR: getDynamicClassID() didn't return the expected value");
179 }
180
181 delete another;
182
183 // ====== test constructor/copy constructor and assignment
184 /* they are protected, no test
185 logln("Testing DateIntervalFormat constructor and assigment operator");
186 status = U_ZERO_ERROR;
187
188 DateFormat* constFmt = (constFmt*)dtitvfmt->getDateFormat()->clone();
189 inf = dtitvfmt->getDateIntervalInfo()->clone();
190
191
192 DateIntervalFormat* dtifmt = new DateIntervalFormat(fmt, inf, status);
193 if(U_FAILURE(status)) {
194 dataerrln("ERROR: Could not create DateIntervalFormat (default) - exitting");
195 return;
196 }
197
198 DateIntervalFormat* dtifmt2 = new(dtifmt);
199 if ( (*dtifmt) != (*dtifmt2) ) {
200 dataerrln("ERROR: Could not create DateIntervalFormat (default) - exitting");
201 return;
202 }
203
204 DateIntervalFormat dtifmt3 = (*dtifmt);
205 if ( (*dtifmt) != dtifmt3 ) {
206 dataerrln("ERROR: Could not create DateIntervalFormat (default) - exitting");
207 return;
208 }
209
210 delete dtifmt2;
211 delete dtifmt3;
212 delete dtifmt;
213 */
214
215
216 //===== test format and parse ==================
217 Formattable formattable;
218 formattable.setInt64(10);
219 UnicodeString res;
220 FieldPosition pos = 0;
221 status = U_ZERO_ERROR;
222 dtitvfmt->format(formattable, res, pos, status);
223 if ( status != U_ILLEGAL_ARGUMENT_ERROR ) {
224 dataerrln("ERROR: format non-date-interval object should set U_ILLEGAL_ARGUMENT_ERROR - exitting");
225 return;
226 }
227
228 DateInterval* dtitv = new DateInterval(3600*24*365, 3600*24*366);
229 formattable.adoptObject(dtitv);
230 res.remove();
231 pos = 0;
232 status = U_ZERO_ERROR;
233 dtitvfmt->format(formattable, res, pos, status);
234 if ( U_FAILURE(status) ) {
235 dataerrln("ERROR: format date interval failed - exitting");
236 return;
237 }
238
239 const DateFormat* dfmt = dtitvfmt->getDateFormat();
240 Calendar* fromCal = dfmt->getCalendar()->clone();
241 Calendar* toCal = dfmt->getCalendar()->clone();
242 res.remove();
243 pos = 0;
244 status = U_ZERO_ERROR;
245 dtitvfmt->format(*fromCal, *toCal, res, pos, status);
246 if ( U_FAILURE(status) ) {
247 dataerrln("ERROR: format date interval failed - exitting");
248 return;
249 }
250 delete fromCal;
251 delete toCal;
252
253
254 Formattable fmttable;
255 status = U_ZERO_ERROR;
256 // TODO: why do I need cast?
257 ((Format*)dtitvfmt)->parseObject(res, fmttable, status);
258 if ( status != U_INVALID_FORMAT_ERROR ) {
259 dataerrln("ERROR: parse should set U_INVALID_FORMAT_ERROR - exitting");
260 return;
261 }
262
263 delete dtitvfmt;
264
46f4442e
A
265 //====== test format in testFormat()
266
729e4ab9
A
267 //====== test DateInterval class (better coverage)
268 DateInterval dtitv1(3600*24*365, 3600*24*366);
269 DateInterval dtitv2(dtitv1);
270
271 if (!(dtitv1 == dtitv2)) {
272 errln("ERROR: Copy constructor failed for DateInterval.");
273 }
274
275 DateInterval dtitv3(3600*365, 3600*366);
276 dtitv3 = dtitv1;
277 if (!(dtitv3 == dtitv1)) {
278 errln("ERROR: Equal operator failed for DateInterval.");
279 }
280
281 DateInterval *dtitv4 = dtitv1.clone();
282 if (*dtitv4 != dtitv1) {
283 errln("ERROR: Equal operator failed for DateInterval.");
284 }
285 delete dtitv4;
46f4442e
A
286}
287
288
289/**
290 * Test format
291 */
292void DateIntervalFormatTest::testFormat() {
293 // first item is date pattern
294 // followed by a group of locale/from_data/to_data/skeleton/interval_data
295 const char* DATA[] = {
296 "yyyy MM dd HH:mm:ss",
729e4ab9
A
297 // test root
298 "root", "2007 11 10 10:10:10", "2007 12 10 10:10:10", "yM", "2007-11 \\u2013 12",
299
300 // test 'H' and 'h', using availableFormat in fallback
301 "en", "2007 11 10 10:10:10", "2007 11 10 15:10:10", "Hms", "10:10:10 \\u2013 15:10:10",
302 "en", "2007 11 10 10:10:10", "2007 11 10 15:10:10", "hms", "10:10:10 AM \\u2013 3:10:10 PM",
303
46f4442e
A
304 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMM", "October 2007 \\u2013 October 2008",
305 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMM", "Oct 2007 \\u2013 Oct 2008",
306 // test skeleton with both date and time
307 "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",
308
309 "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "dMMMyhm", "Nov 10, 2007 10:10\\u201311:10 AM",
310
311 "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "hms", "10:10:10 AM \\u2013 11:10:10 AM",
729e4ab9
A
312 "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "Hms", "10:10:10 \\u2013 11:10:10",
313 "en", "2007 11 10 20:10:10", "2007 11 10 21:10:10", "Hms", "20:10:10 \\u2013 21:10:10",
46f4442e
A
314
315 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMMy", "Wednesday, October 10, 2007 \\u2013 Friday, October 10, 2008",
316
317 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMMy", "October 10, 2007 \\u2013 October 10, 2008",
318
319 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMM", "October 10, 2007 \\u2013 October 10, 2008",
320
321 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMMy", "October 2007 \\u2013 October 2008",
322
323 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMM", "Wednesday, October 10, 2007 \\u2013 Friday, October 10, 2008",
324
325 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMMMy", "Wed, Oct 10, 2007 \\u2013 Fri, Oct 10, 2008",
326
327 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMy", "Oct 10, 2007 \\u2013 Oct 10, 2008",
328
329 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMM", "Oct 10, 2007 \\u2013 Oct 10, 2008",
330
331 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMy", "Oct 2007 \\u2013 Oct 2008",
332
333 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMMM", "Wed, Oct 10, 2007 \\u2013 Fri, Oct 10, 2008",
334
335 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08",
336
337 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMy", "10/10/07 \\u2013 10/10/08",
338
339 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dM", "10/10/07 \\u2013 10/10/08",
340
341 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "My", "10/07 \\u2013 10/08",
342
343 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdM", "Wed, 10/10/07 \\u2013 Fri, 10/10/08",
344
345 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "d", "10/10/07 \\u2013 10/10/08",
346
347 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Ed", "10 Wed \\u2013 10 Fri",
348
349 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "y", "2007\\u20132008",
350
351 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "M", "10/07 \\u2013 10/08",
352
353
354
355 "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",
729e4ab9
A
356 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Hm", "10/10/2007 10:10 \\u2013 10/10/2008 10:10",
357 "en", "2007 10 10 20:10:10", "2008 10 10 20:10:10", "Hm", "10/10/2007 20:10 \\u2013 10/10/2008 20:10",
46f4442e
A
358
359 "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",
360
361 "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",
362
729e4ab9 363 "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",
46f4442e 364
729e4ab9 365 "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",
46f4442e 366
729e4ab9 367 "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",
46f4442e
A
368
369 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEddMMyyyy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08",
370
371 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EddMMy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08",
372
373 "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",
374
375 "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",
376
377 "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",
378
379 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMMMy", "O 10, 2007 \\u2013 O 10, 2008",
380
381 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEEdM", "W, 10/10/07 \\u2013 F, 10/10/08",
382
383 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMMy", "Wednesday, October 10 \\u2013 Saturday, November 10, 2007",
384
385 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMy", "October 10 \\u2013 November 10, 2007",
386
387 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMM", "October 10 \\u2013 November 10",
388
389 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMMy", "October\\u2013November 2007",
390
391 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMM", "Wednesday, October 10 \\u2013 Saturday, November 10",
392
393 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMMMy", "Wed, Oct 10 \\u2013 Sat, Nov 10, 2007",
394
395 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMy", "Oct 10 \\u2013 Nov 10, 2007",
396
397 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMM", "Oct 10 \\u2013 Nov 10",
398
399 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMy", "Oct\\u2013Nov 2007",
400
401 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMMM", "Wed, Oct 10 \\u2013 Sat, Nov 10",
402
403 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07",
404
405 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMy", "10/10/07 \\u2013 11/10/07",
406
407
408 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "My", "10/07 \\u2013 11/07",
409
410 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdM", "Wed, 10/10 \\u2013 Sat, 11/10",
411
412 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "d", "10/10 \\u2013 11/10",
413
414 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "Ed", "10 Wed \\u2013 10 Sat",
415
416 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "y", "2007",
417
418 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "M", "10\\u201311",
419
420 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMM", "Oct\\u2013Nov",
421
422 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMM", "October-November",
423
424 "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",
729e4ab9
A
425 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "Hm", "10/10/2007 10:10 \\u2013 11/10/2007 10:10",
426 "en", "2007 10 10 20:10:10", "2007 11 10 20:10:10", "Hm", "10/10/2007 20:10 \\u2013 11/10/2007 20:10",
46f4442e
A
427
428 "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",
429
430 "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",
431
729e4ab9 432 "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",
46f4442e 433
729e4ab9 434 "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",
46f4442e 435
729e4ab9 436 "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",
46f4442e
A
437
438 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEddMMyyyy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07",
439
440 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EddMMy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07",
441
442
443 "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",
444
445 "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",
446
447 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMMy", "O 10 \\u2013 N 10, 2007",
448
449 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEEdM", "W, 10/10 \\u2013 S, 11/10",
450
451 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMMy", "Saturday, November 10 \\u2013 Tuesday, November 20, 2007",
452
453 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMy", "November 10\\u201320, 2007",
454
455 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMM", "November 10\\u201320",
456
457
458 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMM", "Saturday, November 10 \\u2013 Tuesday, November 20",
459
460 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMMy", "Sat, Nov 10 \\u2013 Tue, Nov 20, 2007",
461
462 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMy", "Nov 10\\u201320, 2007",
463
464 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMM", "Nov 10\\u201320",
465
466 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMy", "Nov 2007",
467
468 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMM", "Sat, Nov 10 \\u2013 Tue, Nov 20",
469
470 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07",
471
472 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "11/10/07 \\u2013 11/20/07",
473
474 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "11/10 \\u2013 11/20",
475
476 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "11/2007",
477
478 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "Sat, 11/10 \\u2013 Tue, 11/20",
479
480 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10\\u201320",
481
482 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Ed", "10 Sat \\u2013 20 Tue",
483
484 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007",
485
486 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11",
487
488 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMM", "Nov",
489
490 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMM", "November",
491
492 "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",
729e4ab9
A
493 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Hm", "11/10/2007 10:10 \\u2013 11/20/2007 10:10",
494 "en", "2007 11 10 20:10:10", "2007 11 20 20:10:10", "Hm", "11/10/2007 20:10 \\u2013 11/20/2007 20:10",
46f4442e
A
495
496 "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",
497
498 "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",
499
729e4ab9 500 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "h", "11/10/2007 10 AM \\u2013 11/20/2007 10 AM",
46f4442e 501
729e4ab9 502 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hv", "11/10/2007 10 AM PT \\u2013 11/20/2007 10 AM PT",
46f4442e 503
729e4ab9 504 "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",
46f4442e
A
505
506 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEddMMyyyy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07",
507
508 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EddMMy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07",
509
510 "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",
511
512 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hhmmzz", "11/10/2007 10:10 AM PST \\u2013 11/20/2007 10:10 AM PST",
513
514 "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",
729e4ab9
A
515 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Hms", "11/10/2007 10:10:10 \\u2013 11/20/2007 10:10:10",
516 "en", "2007 11 10 20:10:10", "2007 11 20 20:10:10", "Hms", "11/10/2007 20:10:10 \\u2013 11/20/2007 20:10:10",
46f4442e
A
517
518 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMMy", "N 10\\u201320, 2007",
519
520 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEEdM", "S, 11/10 \\u2013 T, 11/20",
521
522 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMMy", "Wednesday, January 10, 2007",
523
524 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMMy", "January 10, 2007",
525
526 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMM", "January 10",
527
528 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMMy", "January 2007",
529
530 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMM", "Wednesday, January 10",
531
532 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdMMMy", "Wed, Jan 10, 2007",
533
534 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMy", "Jan 10, 2007",
535
536 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMM", "Jan 10",
537
538 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMy", "Jan 2007",
539
540 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdMMM", "Wed, Jan 10",
541
542
543 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMy", "1/10/2007",
544
545 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dM", "1/10",
546
547 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "My", "1/2007",
548
549 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdM", "Wed, 1/10",
550
551 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "d", "10",
552
553 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Ed", "10 Wed",
554
555 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "y", "2007",
556
557 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "M", "1",
558
559 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMM", "Jan",
560
561 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMM", "January",
562
563 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hm", "10:00 AM \\u2013 2:10 PM",
729e4ab9 564 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Hm", "10:00 \\u2013 14:10",
46f4442e
A
565
566 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmv", "10:00 AM \\u2013 2:10 PM PT",
567
568 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmz", "10:00 AM \\u2013 2:10 PM PST",
569
570 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10 AM \\u2013 2 PM",
729e4ab9 571 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "H", "10 \\u2013 14",
46f4442e
A
572
573
574 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hz", "10 AM \\u2013 2 PM PST",
575
576 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEddMMyyyy", "Wed, 01/10/2007",
577
578 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EddMMy", "Wed, 01/10/2007",
579
580 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hhmm", "10:00 AM \\u2013 2:10 PM",
729e4ab9 581 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "HHmm", "10:00 \\u2013 14:10",
46f4442e
A
582
583 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hhmmzz", "10:00 AM \\u2013 2:10 PM PST",
584
585 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hms", "10:00:10 AM \\u2013 2:10:10 PM",
729e4ab9 586 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Hms", "10:00:10 \\u2013 14:10:10",
46f4442e
A
587
588 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMMMy", "J 10, 2007",
589
590 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEEdM", "W, 1/10",
591 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMMy", "January 10, 2007",
592
593 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMM", "January 10",
594
595 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "MMMMy", "January 2007",
596
597 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EEEEdMMMM", "Wednesday, January 10",
598
599 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMMMy", "Wed, Jan 10, 2007",
600
601 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMy", "Jan 10, 2007",
602
603 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMM", "Jan 10",
604
605
606 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMMM", "Wed, Jan 10",
607
608 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMy", "Wed, 1/10/2007",
609
610 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMy", "1/10/2007",
611
612
613 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "My", "1/2007",
614
615 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdM", "Wed, 1/10",
616
617 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "d", "10",
618
619
620 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "y", "2007",
621
622 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "M", "1",
623
624
625
626 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "10:00\\u201310:20 AM",
729e4ab9 627 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "Hm", "10:00 \\u2013 10:20",
46f4442e
A
628
629
630 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmz", "10:00\\u201310:20 AM PST",
631
632
729e4ab9 633 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hv", "10 AM PT",
46f4442e
A
634
635
636
637 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EddMMy", "Wed, 01/10/2007",
638
639 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hhmm", "10:00\\u201310:20 AM",
729e4ab9 640 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "HHmm", "10:00 \\u2013 10:20",
46f4442e
A
641
642 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hhmmzz", "10:00\\u201310:20 AM PST",
643
644
645 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMMMy", "J 10, 2007",
646
647
648 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMMy", "Wednesday, January 10, 2007",
649
650 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMMMy", "January 10, 2007",
651
652
653 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "MMMMy", "January 2007",
654
655 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMM", "Wednesday, January 10",
656
657
658 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMMy", "Jan 10, 2007",
659
660 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMM", "Jan 10",
661
662
663 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdMMM", "Wed, Jan 10",
664
665 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdMy", "Wed, 1/10/2007",
666
667 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMy", "1/10/2007",
668
669
670 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "My", "1/2007",
671
672 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdM", "Wed, 1/10",
673
674 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "d", "10",
675
676
677 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "y", "2007",
678
679 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "M", "1",
680
681
682 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "MMMM", "January",
683
684 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "10:10 AM",
729e4ab9 685 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Hm", "10:10",
46f4442e
A
686
687
688 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 AM PST",
689
729e4ab9 690 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "10 AM",
46f4442e 691
729e4ab9 692 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hv", "10 AM PT",
46f4442e
A
693
694
695 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEddMMyyyy", "Wed, 01/10/2007",
696
697
698 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hhmm", "10:10 AM",
729e4ab9 699 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "HHmm", "10:10",
46f4442e
A
700
701 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hhmmzz", "10:10 AM PST",
702
703
704 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMMMMy", "J 10, 2007",
705
706 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEEdM", "W, 1/10",
707
708 "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",
709
710
711 "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMy", "2007\\u5e7410\\u670810\\u65e5\\u81f311\\u670810\\u65e5",
712
713
714 "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMMy", "2007\\u5e7410\\u6708\\u81f311\\u6708",
715
716
729e4ab9 717 "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)\\u81f32007\\u5e7411\\u670810\\u65e5 \\u4e0a\\u534810:10 \\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)",
46f4442e
A
718
719 "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",
720
721
722 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMM", "11\\u670810\\u65e5\\u81f320\\u65e5",
723
724 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMMy", "2007\\u5E7411\\u6708", // (fixed expected result per ticket:6626:)
725
726 "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",
727
728
729 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "07-11-10\\u5468\\u516d\\u81f307-11-20\\u5468\\u4e8c",
730
731
732 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "11-10\\u81f311-20",
733
734 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "2007-11",
735
736 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "11-10\\u5468\\u516d\\u81f311-20\\u5468\\u4e8c",
737
738
739 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007\\u5E74", // (fixed expected result per ticket:6626:)
740
729e4ab9 741 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11\\u6708",
46f4442e
A
742
743 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMM", "\\u5341\\u4E00\\u6708", // (fixed expected result per ticket:6626: and others)
744
745
729e4ab9 746 "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\\u81f32007\\u5e7411\\u670820\\u65e5 \\u4e0a\\u534810:10 \\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800",
46f4442e 747
729e4ab9 748 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "h", "2007\\u5e7411\\u670810\\u65e5 \\u4e0a\\u534810\\u65f6\\u81f32007\\u5e7411\\u670820\\u65e5 \\u4e0a\\u534810\\u65f6",
46f4442e
A
749
750 "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:6626:)
751
752 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hm", "\\u4e0a\\u534810:00\\u81f3\\u4e0b\\u53482:10",
753
754
729e4ab9 755 "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",
46f4442e
A
756
757 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "\\u4e0a\\u534810\\u81f3\\u4e0b\\u53482\\u65f6",
758
729e4ab9 759 "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",
46f4442e
A
760
761 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "\\u4e0a\\u534810:00\\u81f310:20",
762
729e4ab9 763 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "\\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)\\u4e0a\\u534810:00\\u81f310:20",
46f4442e 764
729e4ab9 765 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "\\u4e0a\\u534810\\u65f6 \\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800",
46f4442e
A
766
767 "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "\\u4e0a\\u534810:10",
768
729e4ab9 769 "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "\\u4e0a\\u534810\\u65f6",
46f4442e
A
770
771 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMy", "Mittwoch, 10. Okt 2007 - Freitag, 10. Okt 2008",
772
773
774 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMM", "10. Okt 2007 - 10. Okt 2008",
775
776 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMy", "Okt 2007 - Okt 2008",
777
778
779 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMy", "Mi., 10.10.07 - Fr., 10.10.08",
780
781 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMy", "10.10.07 - 10.10.08",
782
783
784 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "My", "10.07 - 10.08",
785
786 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdM", "Mi., 10.10.07 - Fr., 10.10.08",
787
788
789 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "y", "2007-2008",
790
791 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "M", "10.07 - 10.08",
792
793
794 "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.",
729e4ab9 795 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Hm", "10.10.2007 10:10 - 10.10.2008 10:10",
46f4442e
A
796
797 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMy", "Mittwoch, 10. Okt - Samstag, 10. Nov 2007",
798
799
800 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMM", "10. Okt - 10. Nov",
801
802 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMy", "Okt-Nov 2007",
803
804 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMM", "Mittwoch, 10. Okt - Samstag, 10. Nov",
805
806
807 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dM", "10.10. - 10.11.",
808
809 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "My", "10.07 - 11.07",
810
811
812 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "d", "10.10. - 10.11.",
813
814 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "y", "2007",
815
816
817 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMM", "Okt-Nov",
818
819
820 "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.",
729e4ab9 821 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "Hms", "10.10.2007 10:10:10 - 10.11.2007 10:10:10",
46f4442e
A
822
823 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMy", "Samstag, 10. - Dienstag, 20. Nov 2007",
824
825 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMy", "10.-20. Nov 2007",
826
827
828 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMy", "Nov 2007",
829
830 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMM", "Samstag, 10. - Dienstag, 20. Nov",
831
832 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sa., 10.11.07 - Di., 20.11.07",
833
834
835 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "10.11. - 20.11.",
836
729e4ab9 837 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "11.2007",
46f4442e
A
838
839
840 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10.-20.",
841
842 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007",
843
844
845 "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)",
846
847 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMy", "Mittwoch, 10. Jan 2007",
848
849
850 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMM", "10. Jan",
851
852 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMy", "Jan 2007",
853
729e4ab9 854 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMM", "Mittwoch, 10. Jan",
46f4442e
A
855
856
729e4ab9
A
857 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10 vorm. - 2 nachm.",
858 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "H", "10-14 Uhr",
46f4442e 859
729e4ab9 860 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EEEEdMMM", "Mittwoch, 10. Jan",
46f4442e
A
861
862
729e4ab9 863 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "10:00-10:20 vorm. Vereinigte Staaten (Los Angeles)",
46f4442e 864
729e4ab9 865 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmz", "10:00-10:20 vorm. GMT-08:00",
46f4442e 866
729e4ab9
A
867 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10 vorm.",
868 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "H", "10 Uhr",
46f4442e
A
869
870
729e4ab9 871 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "10 vorm. GMT-08:00",
46f4442e
A
872
873 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMy", "Mittwoch, 10. Jan 2007",
874
875
876 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmv", "10:10 vorm. Vereinigte Staaten (Los Angeles)",
877
878 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 vorm. GMT-08:00",
879
880
729e4ab9
A
881 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hv", "10 vorm. Vereinigte Staaten (Los Angeles)",
882
883 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hz", "10 vorm. GMT-08:00",
884
885 // Thai (default calendar buddhist)
886
887 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "EEEEdMMMy", "\\u0E27\\u0E31\\u0E19\\u0E1E\\u0E38\\u0E18 10 \\u0E15.\\u0E04. 2550 - \\u0E27\\u0E31\\u0E19\\u0E28\\u0E38\\u0E01\\u0E23\\u0E4C 10 \\u0E15.\\u0E04. 2551",
888
889
890 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "dMMM", "10 \\u0E15.\\u0E04. 2550 - 10 \\u0E15.\\u0E04. 2551",
46f4442e 891
729e4ab9
A
892 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "MMMy", "\\u0E15.\\u0E04. 2550 - \\u0E15.\\u0E04. 2551",
893
894
895 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "EdMy", "\\u0E1E. 10/10/50 - \\u0E28. 10/10/51",
896
897 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "dMy", "10/10/50 - 10/10/51",
898
899
900 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "My", "10/50 - 10/51",
901
902 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "EdM", "\\u0E1E. 10/10/50 - \\u0E28. 10/10/51",
903
904
905 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "y", "2550-2551",
906
907 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "M", "10/50 - 10/51",
908
909
910 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "EEEEdMMMy", "\\u0E27\\u0E31\\u0E19\\u0E1E\\u0E38\\u0E18 10 \\u0E15.\\u0E04. - \\u0E27\\u0E31\\u0E19\\u0E40\\u0E2A\\u0E32\\u0E23\\u0E4C 10 \\u0E1E.\\u0E22. 2550",
911
912
913 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "dMMM", "10 \\u0E15.\\u0E04. - 10 \\u0E1E.\\u0E22.",
914
915 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "MMMy", "\\u0E15.\\u0E04.-\\u0E1E.\\u0E22. 2550",
916
917 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "dM", "10/10 - 10/11",
918
919 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "My", "10/50 - 11/50",
920
921
922 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "d", "10/10 - 10/11",
923
924 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "y", "2550",
925
926
927 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "MMM", "\\u0E15.\\u0E04.-\\u0E1E.\\u0E22.",
928
46f4442e
A
929 };
930 expect(DATA, ARRAY_SIZE(DATA));
931}
932
933
934void DateIntervalFormatTest::expect(const char** data, int32_t data_length) {
935 int32_t i = 0;
936 UErrorCode ec = U_ZERO_ERROR;
937 UnicodeString str, str2;
938 const char* pattern = data[0];
939 i++;
940
941#ifdef DTIFMTTS_DEBUG
942 char result[1000];
943 char mesg[1000];
944 sprintf(mesg, "locale: %s\n", locName);
945 PRINTMESG(mesg);
946#endif
947
948 while (i<data_length) {
949 const char* locName = data[i++];
950 Locale loc(locName);
951 SimpleDateFormat ref(pattern, loc, ec);
729e4ab9
A
952 if (U_FAILURE(ec)) {
953 dataerrln("contruct SimpleDateFormat in expect failed: %s", u_errorName(ec));
954 return;
955 }
46f4442e
A
956 // 'f'
957 const char* datestr = data[i++];
958 const char* datestr_2 = data[i++];
959#ifdef DTIFMTTS_DEBUG
960 sprintf(mesg, "original date: %s - %s\n", datestr, datestr_2);
961 PRINTMESG(mesg)
962#endif
963 UDate date = ref.parse(ctou(datestr), ec);
964 if (!assertSuccess("parse 1st data in expect", ec)) return;
965 UDate date_2 = ref.parse(ctou(datestr_2), ec);
966 if (!assertSuccess("parse 2nd data in expect", ec)) return;
967 DateInterval dtitv(date, date_2);
968
969 const UnicodeString& oneSkeleton = data[i++];
970
971 DateIntervalFormat* dtitvfmt = DateIntervalFormat::createInstance(oneSkeleton, loc, ec);
972 if (!assertSuccess("createInstance(skeleton) in expect", ec)) return;
973 FieldPosition pos=0;
974 dtitvfmt->format(&dtitv, str.remove(), pos, ec);
975 if (!assertSuccess("format in expect", ec)) return;
976 assertEquals((UnicodeString)"\"" + locName + "\\" + oneSkeleton + "\\" + datestr + "\\" + datestr_2 + "\"", ctou(data[i++]), str);
977
978
979
980#ifdef DTIFMTTS_DEBUG
981 str.extract(0, str.length(), result, "UTF-8");
982 sprintf(mesg, "interval date: %s\n", result);
983 std::cout << "//";
984 PRINTMESG(mesg)
985 std::cout << "\"" << locName << "\", "
986 << "\"" << datestr << "\", "
987 << "\"" << datestr_2 << "\", ";
988 printUnicodeString(oneSkeleton);
989 printUnicodeString(str);
990 std::cout << "\n\n";
991#endif
992 delete dtitvfmt;
993 }
994}
995
996
997/*
998 * Test format using user defined DateIntervalInfo
999 */
1000void DateIntervalFormatTest::testFormatUserDII() {
1001 // first item is date pattern
1002 const char* DATA[] = {
1003 "yyyy MM dd HH:mm:ss",
1004 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Oct 10, 2007 --- Oct 10, 2008",
1005
1006 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 Oct 10 - Nov 2007",
1007
1008 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Nov 10, 2007 --- Nov 20, 2007",
1009
1010 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Jan 10, 2007",
1011
1012 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "Jan 10, 2007",
1013
1014 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Jan 10, 2007",
1015
1016 "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "2007\\u5e7410\\u670810\\u65e5 --- 2008\\u5e7410\\u670810\\u65e5",
1017
1018 "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 10\\u6708 10 - 11\\u6708 2007",
1019
1020 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007\\u5e7411\\u670810\\u65e5 --- 2007\\u5e7411\\u670820\\u65e5",
1021
1022 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "2007\\u5e741\\u670810\\u65e5", // (fixed expected result per ticket:6626:)
1023
1024 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "2007\\u5e741\\u670810\\u65e5", // (fixed expected result per ticket:6626:)
1025
1026 "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "2007\\u5e741\\u670810\\u65e5", // (fixed expected result per ticket:6626:)
1027
1028 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "10. Okt 2007 --- 10. Okt 2008",
1029
1030
1031 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "10. Nov 2007 --- 20. Nov 2007",
1032
1033 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "10. Jan 2007",
1034
1035 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "10. Jan 2007",
1036
1037
1038 "es", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "10 de oct de 2007 --- 10 de oct de 2008",
1039
1040 "es", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 oct 10 - nov 2007",
1041
1042 "es", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "10 de nov de 2007 --- 20 de nov de 2007",
1043
1044 "es", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "10 de ene de 2007",
1045
1046 "es", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "10 de ene de 2007",
1047
1048 "es", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "10 de ene de 2007",
1049 };
1050 expectUserDII(DATA, ARRAY_SIZE(DATA));
1051}
1052
1053
1054void DateIntervalFormatTest::expectUserDII(const char** data,
1055 int32_t data_length) {
1056 int32_t i = 0;
1057 UnicodeString str;
1058 UErrorCode ec = U_ZERO_ERROR;
1059 const char* pattern = data[0];
1060 i++;
1061
1062 while ( i < data_length ) {
1063 const char* locName = data[i++];
1064 Locale loc(locName);
1065 SimpleDateFormat ref(pattern, loc, ec);
729e4ab9
A
1066 if (U_FAILURE(ec)) {
1067 dataerrln("contruct SimpleDateFormat in expectUserDII failed: %s", u_errorName(ec));
1068 return;
1069 }
46f4442e
A
1070 const char* datestr = data[i++];
1071 const char* datestr_2 = data[i++];
1072 UDate date = ref.parse(ctou(datestr), ec);
1073 if (!assertSuccess("parse in expectUserDII", ec)) return;
1074 UDate date_2 = ref.parse(ctou(datestr_2), ec);
1075 if (!assertSuccess("parse in expectUserDII", ec)) return;
1076 DateInterval dtitv(date, date_2);
1077
1078 ec = U_ZERO_ERROR;
1079 // test user created DateIntervalInfo
1080 DateIntervalInfo* dtitvinf = new DateIntervalInfo(ec);
1081 dtitvinf->setFallbackIntervalPattern("{0} --- {1}", ec);
1082 dtitvinf->setIntervalPattern(UDAT_YEAR_ABBR_MONTH_DAY, UCAL_MONTH, "yyyy MMM d - MMM y",ec);
1083 if (!assertSuccess("DateIntervalInfo::setIntervalPattern", ec)) return;
1084 dtitvinf->setIntervalPattern(UDAT_YEAR_ABBR_MONTH_DAY, UCAL_HOUR_OF_DAY, "yyyy MMM d HH:mm - HH:mm", ec);
1085 if (!assertSuccess("DateIntervalInfo::setIntervalPattern", ec)) return;
1086 DateIntervalFormat* dtitvfmt = DateIntervalFormat::createInstance(UDAT_YEAR_ABBR_MONTH_DAY, loc, *dtitvinf, ec);
1087 delete dtitvinf;
1088 if (!assertSuccess("createInstance(skeleton,dtitvinf) in expectUserDII", ec)) return;
1089 FieldPosition pos=0;
1090 dtitvfmt->format(&dtitv, str.remove(), pos, ec);
1091 if (!assertSuccess("format in expectUserDII", ec)) return;
1092 assertEquals((UnicodeString)"\"" + locName + "\\" + datestr + "\\" + datestr_2 + "\"", ctou(data[i++]), str);
1093#ifdef DTIFMTTS_DEBUG
1094 char result[1000];
1095 char mesg[1000];
1096 PRINTMESG("interval format using user defined DateIntervalInfo\n");
1097 str.extract(0, str.length(), result, "UTF-8");
1098 sprintf(mesg, "interval date: %s\n", result);
1099 PRINTMESG(mesg);
1100#endif
1101 delete dtitvfmt;
1102 }
1103}
1104
1105
1106void DateIntervalFormatTest::testStress() {
1107 if(quick){
1108 logln("Quick mode: Skipping test");
1109 return;
1110 }
1111 const char* DATA[] = {
1112 "yyyy MM dd HH:mm:ss",
1113 "2007 10 10 10:10:10", "2008 10 10 10:10:10",
1114 "2007 10 10 10:10:10", "2007 11 10 10:10:10",
1115 "2007 11 10 10:10:10", "2007 11 20 10:10:10",
1116 "2007 01 10 10:00:10", "2007 01 10 14:10:10",
1117 "2007 01 10 10:00:10", "2007 01 10 10:20:10",
1118 "2007 01 10 10:10:10", "2007 01 10 10:10:20",
1119 };
1120
1121 const char* testLocale[][3] = {
1122 //{"th", "", ""},
1123 {"en", "", ""},
1124 {"zh", "", ""},
1125 {"de", "", ""},
1126 {"ar", "", ""},
1127 {"en", "GB", ""},
1128 {"fr", "", ""},
1129 {"it", "", ""},
1130 {"nl", "", ""},
1131 {"zh", "TW", ""},
1132 {"ja", "", ""},
1133 {"pt", "BR", ""},
1134 {"ru", "", ""},
1135 {"pl", "", ""},
1136 {"tr", "", ""},
1137 {"es", "", ""},
1138 {"ko", "", ""},
1139 {"sv", "", ""},
1140 {"fi", "", ""},
1141 {"da", "", ""},
1142 {"pt", "PT", ""},
1143 {"ro", "", ""},
1144 {"hu", "", ""},
1145 {"he", "", ""},
1146 {"in", "", ""},
1147 {"cs", "", ""},
1148 {"el", "", ""},
1149 {"no", "", ""},
1150 {"vi", "", ""},
1151 {"bg", "", ""},
1152 {"hr", "", ""},
1153 {"lt", "", ""},
1154 {"sk", "", ""},
1155 {"sl", "", ""},
1156 {"sr", "", ""},
1157 {"ca", "", ""},
1158 {"lv", "", ""},
1159 {"uk", "", ""},
1160 {"hi", "", ""},
1161 };
1162
1163 uint32_t localeIndex;
1164 for ( localeIndex = 0; localeIndex < ARRAY_SIZE(testLocale); ++localeIndex ) {
1165 char locName[32];
1166 uprv_strcpy(locName, testLocale[localeIndex][0]);
1167 uprv_strcat(locName, testLocale[localeIndex][1]);
1168 stress(DATA, ARRAY_SIZE(DATA), Locale(testLocale[localeIndex][0], testLocale[localeIndex][1], testLocale[localeIndex][2]), locName);
1169 }
1170}
1171
1172
1173void DateIntervalFormatTest::stress(const char** data, int32_t data_length,
1174 const Locale& loc, const char* locName) {
1175 UnicodeString skeleton[] = {
1176 "EEEEdMMMMy",
1177 "dMMMMy",
1178 "dMMMM",
1179 "MMMMy",
1180 "EEEEdMMMM",
1181 "EdMMMy",
1182 "dMMMy",
1183 "dMMM",
1184 "MMMy",
1185 "EdMMM",
1186 "EdMy",
1187 "dMy",
1188 "dM",
1189 "My",
1190 "EdM",
1191 "d",
1192 "Ed",
1193 "y",
1194 "M",
1195 "MMM",
1196 "MMMM",
1197 "hm",
1198 "hmv",
1199 "hmz",
1200 "h",
1201 "hv",
1202 "hz",
1203 "EEddMMyyyy", // following could be normalized
1204 "EddMMy",
1205 "hhmm",
1206 "hhmmzz",
1207 "hms", // following could not be normalized
1208 "dMMMMMy",
1209 "EEEEEdM",
1210 };
1211
1212 int32_t i = 0;
1213 UErrorCode ec = U_ZERO_ERROR;
1214 UnicodeString str, str2;
1215 SimpleDateFormat ref(data[i++], loc, ec);
1216 if (!assertSuccess("construct SimpleDateFormat", ec)) return;
1217
1218#ifdef DTIFMTTS_DEBUG
1219 char result[1000];
1220 char mesg[1000];
1221 sprintf(mesg, "locale: %s\n", locName);
1222 PRINTMESG(mesg);
1223#endif
1224
1225 while (i<data_length) {
1226
1227 // 'f'
1228 const char* datestr = data[i++];
1229 const char* datestr_2 = data[i++];
1230#ifdef DTIFMTTS_DEBUG
1231 sprintf(mesg, "original date: %s - %s\n", datestr, datestr_2);
1232 PRINTMESG(mesg)
1233#endif
1234 UDate date = ref.parse(ctou(datestr), ec);
1235 if (!assertSuccess("parse", ec)) return;
1236 UDate date_2 = ref.parse(ctou(datestr_2), ec);
1237 if (!assertSuccess("parse", ec)) return;
1238 DateInterval dtitv(date, date_2);
1239
1240 for ( uint32_t skeletonIndex = 0;
1241 skeletonIndex < ARRAY_SIZE(skeleton);
1242 ++skeletonIndex ) {
1243 const UnicodeString& oneSkeleton = skeleton[skeletonIndex];
1244 DateIntervalFormat* dtitvfmt = DateIntervalFormat::createInstance(oneSkeleton, loc, ec);
1245 if (!assertSuccess("createInstance(skeleton)", ec)) return;
1246 /*
1247 // reset the calendar to be Gregorian calendar for "th"
1248 if ( uprv_strcmp(locName, "th") == 0 ) {
1249 GregorianCalendar* gregCal = new GregorianCalendar(loc, ec);
1250 if (!assertSuccess("GregorianCalendar()", ec)) return;
1251 const DateFormat* dformat = dtitvfmt->getDateFormat();
1252 DateFormat* newOne = (DateFormat*)dformat->clone();
1253 newOne->adoptCalendar(gregCal);
1254 //dtitvfmt->adoptDateFormat(newOne, ec);
1255 dtitvfmt->setDateFormat(*newOne, ec);
1256 delete newOne;
1257 if (!assertSuccess("adoptDateFormat()", ec)) return;
1258 }
1259 */
1260 FieldPosition pos=0;
1261 dtitvfmt->format(&dtitv, str.remove(), pos, ec);
1262 if (!assertSuccess("format", ec)) return;
1263#ifdef DTIFMTTS_DEBUG
1264 oneSkeleton.extract(0, oneSkeleton.length(), result, "UTF-8");
1265 sprintf(mesg, "interval by skeleton: %s\n", result);
1266 PRINTMESG(mesg)
1267 str.extract(0, str.length(), result, "UTF-8");
1268 sprintf(mesg, "interval date: %s\n", result);
1269 PRINTMESG(mesg)
1270#endif
1271 delete dtitvfmt;
1272 }
1273
1274 // test user created DateIntervalInfo
1275 ec = U_ZERO_ERROR;
1276 DateIntervalInfo* dtitvinf = new DateIntervalInfo(ec);
1277 dtitvinf->setFallbackIntervalPattern("{0} --- {1}", ec);
1278 dtitvinf->setIntervalPattern(UDAT_YEAR_ABBR_MONTH_DAY, UCAL_MONTH, "yyyy MMM d - MMM y",ec);
1279 if (!assertSuccess("DateIntervalInfo::setIntervalPattern", ec)) return;
1280 dtitvinf->setIntervalPattern(UDAT_YEAR_ABBR_MONTH_DAY, UCAL_HOUR_OF_DAY, "yyyy MMM d HH:mm - HH:mm", ec);
1281 if (!assertSuccess("DateIntervalInfo::setIntervalPattern", ec)) return;
1282 DateIntervalFormat* dtitvfmt = DateIntervalFormat::createInstance(UDAT_YEAR_ABBR_MONTH_DAY, loc, *dtitvinf, ec);
1283 delete dtitvinf;
1284 if (!assertSuccess("createInstance(skeleton,dtitvinf)", ec)) return;
1285 FieldPosition pos=0;
1286 dtitvfmt->format(&dtitv, str.remove(), pos, ec);
1287 if ( uprv_strcmp(locName, "th") ) {
1288 if (!assertSuccess("format", ec)) return;
1289#ifdef DTIFMTTS_DEBUG
1290 PRINTMESG("interval format using user defined DateIntervalInfo\n");
1291 str.extract(0, str.length(), result, "UTF-8");
1292 sprintf(mesg, "interval date: %s\n", result);
1293 PRINTMESG(mesg)
1294#endif
1295 } else {
1296 // for "th", the default calendar is Budhist,
1297 // not Gregorian.
1298 assertTrue("Default calendar for \"th\" is Budhist", ec == U_ILLEGAL_ARGUMENT_ERROR);
1299 ec = U_ZERO_ERROR;
1300 }
1301 delete dtitvfmt;
1302 }
1303}
1304
1305#endif /* #if !UCONFIG_NO_FORMATTING */