1c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
2c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru/********************************************************************
3c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru * COPYRIGHT:
48393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius * Copyright (c) 1997-2013, International Business Machines Corporation and
5c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru * others. All Rights Reserved.
6c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru ********************************************************************/
7c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
8c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#include "unicode/utypes.h"
9c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
10c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#if !UCONFIG_NO_FORMATTING
11c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
12c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
13b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru//TODO: define it in compiler flag
14c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru//#define DTIFMTTS_DEBUG 1
15c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
16c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
17c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#ifdef DTIFMTTS_DEBUG
18b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#include <iostream>
19c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#endif
20c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
21c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
22c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#include "cstring.h"
23c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#include "dtifmtts.h"
24c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#include "unicode/gregocal.h"
25c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#include "unicode/dtintrv.h"
26c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#include "unicode/dtitvinf.h"
27c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#include "unicode/dtitvfmt.h"
288393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius#include "unicode/localpointer.h"
29b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho#include "unicode/timezone.h"
30c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
31c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
32c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
33c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#ifdef DTIFMTTS_DEBUG
34c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru//#define PRINTMESG(msg) { std::cout << "(" << __FILE__ << ":" << __LINE__ << ") " << msg << "\n"; }
35c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#define PRINTMESG(msg) { std::cout << msg; }
36c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#endif
37c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
38c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
39c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
40c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#include <stdio.h>
41c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
42c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
43c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queruvoid DateIntervalFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ ) {
44c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if (exec) logln("TestSuite DateIntervalFormat");
45c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    switch (index) {
46c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        TESTCASE(0, testAPI);
47c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        TESTCASE(1, testFormat);
48c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        TESTCASE(2, testFormatUserDII);
498393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        TESTCASE(3, testSetIntervalPatternNoSideEffect);
5059d709d503bab6e2b61931737e662dd293b40578ccornelius        TESTCASE(4, testYearFormats);
5159d709d503bab6e2b61931737e662dd293b40578ccornelius        TESTCASE(5, testStress);
52c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        default: name = ""; break;
53c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
54c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru}
55c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
56c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru/**
57c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru * Test various generic API methods of DateIntervalFormat for API coverage.
58c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru */
59c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queruvoid DateIntervalFormatTest::testAPI() {
60c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
61c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    /* ====== Test create interval instance with default locale and skeleton
62c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru     */
63c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    UErrorCode status = U_ZERO_ERROR;
64c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    logln("Testing DateIntervalFormat create instance with default locale and skeleton");
65c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
66c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    DateIntervalFormat* dtitvfmt = DateIntervalFormat::createInstance(UDAT_YEAR_MONTH_DAY, status);
67c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if(U_FAILURE(status)) {
68c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: Could not create DateIntervalFormat (skeleton + default locale) - exitting");
69c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        return;
70c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    } else {
71c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        delete dtitvfmt;
72c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
73c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
74c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
75c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    /* ====== Test create interval instance with given locale and skeleton
76c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru     */
77c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    status = U_ZERO_ERROR;
78c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    logln("Testing DateIntervalFormat create instance with given locale and skeleton");
79c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
80c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    dtitvfmt = DateIntervalFormat::createInstance(UDAT_YEAR_MONTH_DAY, Locale::getJapanese(), status);
81c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if(U_FAILURE(status)) {
82c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: Could not create DateIntervalFormat (skeleton + locale) - exitting");
83c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        return;
84c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    } else {
85c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        delete dtitvfmt;
86c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
87c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
88c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
89c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    /* ====== Test create interval instance with dateIntervalInfo and skeleton
90c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru     */
91c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    status = U_ZERO_ERROR;
92c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    logln("Testing DateIntervalFormat create instance with dateIntervalInfo  and skeleton");
93c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
94c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    DateIntervalInfo* dtitvinf = new DateIntervalInfo(Locale::getSimplifiedChinese(), status);
95c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
96c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    dtitvfmt = DateIntervalFormat::createInstance("EEEdMMMyhms", *dtitvinf, status);
97c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    delete dtitvinf;
98c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
99c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if(U_FAILURE(status)) {
100c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: Could not create DateIntervalFormat (skeleton + DateIntervalInfo + default locale) - exitting");
101c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        return;
102c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    } else {
103c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        delete dtitvfmt;
104c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
105c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
106c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
107c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    /* ====== Test create interval instance with dateIntervalInfo and skeleton
108c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru     */
109c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    status = U_ZERO_ERROR;
110c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    logln("Testing DateIntervalFormat create instance with dateIntervalInfo  and skeleton");
111c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
112c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    dtitvinf = new DateIntervalInfo(Locale::getSimplifiedChinese(), status);
113c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
114c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    dtitvfmt = DateIntervalFormat::createInstance("EEEdMMMyhms", Locale::getSimplifiedChinese(), *dtitvinf, status);
115c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    delete dtitvinf;
116c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if(U_FAILURE(status)) {
117c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: Could not create DateIntervalFormat (skeleton + DateIntervalInfo + locale) - exitting");
118c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        return;
119c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
120c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    // not deleted, test clone
121c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
122c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
123c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    // ====== Test clone()
124c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    status = U_ZERO_ERROR;
125c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    logln("Testing DateIntervalFormat clone");
126c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
127c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    DateIntervalFormat* another = (DateIntervalFormat*)dtitvfmt->clone();
128c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if ( (*another) != (*dtitvfmt) ) {
129c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: clone failed");
130c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
131c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
13227f654740f2a26ad62a5c155af9199af9e69b889claireho
133c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    // ====== Test getDateIntervalInfo, setDateIntervalInfo, adoptDateIntervalInfo
134c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    status = U_ZERO_ERROR;
135c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    logln("Testing DateIntervalFormat getDateIntervalInfo");
136c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    const DateIntervalInfo* inf = another->getDateIntervalInfo();
137c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    dtitvfmt->setDateIntervalInfo(*inf, status);
138c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    const DateIntervalInfo* anotherInf = dtitvfmt->getDateIntervalInfo();
139c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if ( (*inf) != (*anotherInf) || U_FAILURE(status) ) {
140c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: getDateIntervalInfo/setDateIntervalInfo failed");
141c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
142c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1438393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    {
1448393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        // We make sure that setDateIntervalInfo does not corrupt the cache. See ticket 9919.
1458393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        status = U_ZERO_ERROR;
1468393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        logln("Testing DateIntervalFormat setDateIntervalInfo");
1478393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        const Locale &enLocale = Locale::getEnglish();
1488393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        LocalPointer<DateIntervalFormat> dif(DateIntervalFormat::createInstance("yMd", enLocale, status));
1498393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        if (U_FAILURE(status)) {
1508393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            errln("Failure encountered: %s", u_errorName(status));
1518393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            return;
1528393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        }
1538393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        UnicodeString expected;
1548393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        LocalPointer<Calendar> fromTime(Calendar::createInstance(enLocale, status));
1558393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        LocalPointer<Calendar> toTime(Calendar::createInstance(enLocale, status));
1568393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        if (U_FAILURE(status)) {
1578393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            errln("Failure encountered: %s", u_errorName(status));
1588393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            return;
1598393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        }
1608393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        FieldPosition pos = 0;
1618393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        fromTime->set(2013, 3, 26);
1628393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        toTime->set(2013, 3, 28);
1638393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        dif->format(*fromTime, *toTime, expected, pos, status);
1648393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        if (U_FAILURE(status)) {
1658393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            errln("Failure encountered: %s", u_errorName(status));
1668393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            return;
1678393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        }
1688393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        LocalPointer<DateIntervalInfo> dii(new DateIntervalInfo(Locale::getEnglish(), status));
1698393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        if (U_FAILURE(status)) {
1708393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            errln("Failure encountered: %s", u_errorName(status));
1718393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            return;
1728393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        }
1738393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        dii->setIntervalPattern(ctou("yMd"), UCAL_DATE, ctou("M/d/y \\u2013 d"), status);
1748393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        dif->setDateIntervalInfo(*dii, status);
1758393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        if (U_FAILURE(status)) {
1768393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            errln("Failure encountered: %s", u_errorName(status));
1778393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            return;
1788393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        }
1798393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        dif.adoptInstead(DateIntervalFormat::createInstance("yMd", enLocale, status));
1808393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        if (U_FAILURE(status)) {
1818393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            errln("Failure encountered: %s", u_errorName(status));
1828393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            return;
1838393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        }
1848393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        UnicodeString actual;
1858393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        pos = 0;
1868393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        dif->format(*fromTime, *toTime, actual, pos, status);
1878393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        if (U_FAILURE(status)) {
1888393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            errln("Failure encountered: %s", u_errorName(status));
1898393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            return;
1908393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        }
1918393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        if (expected != actual) {
1928393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            errln("DateIntervalFormat.setIntervalInfo should have no side effects.");
1938393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        }
1948393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    }
1958393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius
196c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    /*
197c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    status = U_ZERO_ERROR;
198c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    DateIntervalInfo* nonConstInf = inf->clone();
199c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    dtitvfmt->adoptDateIntervalInfo(nonConstInf, status);
200c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    anotherInf = dtitvfmt->getDateIntervalInfo();
201c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if ( (*inf) != (*anotherInf) || U_FAILURE(status) ) {
202c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: adoptDateIntervalInfo failed");
203c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
204c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    */
205c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
206c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    // ====== Test getDateFormat, setDateFormat, adoptDateFormat
207c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
208c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    status = U_ZERO_ERROR;
209c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    logln("Testing DateIntervalFormat getDateFormat");
210c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    /*
211b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    const DateFormat* fmt = another->getDateFormat();
212c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    dtitvfmt->setDateFormat(*fmt, status);
213c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    const DateFormat* anotherFmt = dtitvfmt->getDateFormat();
214c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if ( (*fmt) != (*anotherFmt) || U_FAILURE(status) ) {
215c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: getDateFormat/setDateFormat failed");
216c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
217c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
218c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    status = U_ZERO_ERROR;
219c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    DateFormat* nonConstFmt = (DateFormat*)fmt->clone();
220c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    dtitvfmt->adoptDateFormat(nonConstFmt, status);
221c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    anotherFmt = dtitvfmt->getDateFormat();
222c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if ( (*fmt) != (*anotherFmt) || U_FAILURE(status) ) {
223c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: adoptDateFormat failed");
224c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
225b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    delete fmt;
226c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    */
227c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
228c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
229c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    // ======= Test getStaticClassID()
230c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
231c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    logln("Testing getStaticClassID()");
232c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
233c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
234c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if(dtitvfmt->getDynamicClassID() != DateIntervalFormat::getStaticClassID()) {
235c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        errln("ERROR: getDynamicClassID() didn't return the expected value");
236c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
237c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
238c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    delete another;
239c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
240c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    // ====== test constructor/copy constructor and assignment
241c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    /* they are protected, no test
242c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    logln("Testing DateIntervalFormat constructor and assigment operator");
243c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    status = U_ZERO_ERROR;
244c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
245c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    DateFormat* constFmt = (constFmt*)dtitvfmt->getDateFormat()->clone();
246c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    inf = dtitvfmt->getDateIntervalInfo()->clone();
247c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
248c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
249c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    DateIntervalFormat* dtifmt = new DateIntervalFormat(fmt, inf, status);
250c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if(U_FAILURE(status)) {
251c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: Could not create DateIntervalFormat (default) - exitting");
252c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        return;
253c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
254c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
255c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    DateIntervalFormat* dtifmt2 = new(dtifmt);
256c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if ( (*dtifmt) != (*dtifmt2) ) {
257c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: Could not create DateIntervalFormat (default) - exitting");
258c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        return;
259c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
260c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
261c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    DateIntervalFormat dtifmt3 = (*dtifmt);
262c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if ( (*dtifmt) != dtifmt3 ) {
263c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: Could not create DateIntervalFormat (default) - exitting");
264c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        return;
265c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
266c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
267c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    delete dtifmt2;
268c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    delete dtifmt3;
269c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    delete dtifmt;
270c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    */
271c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
272c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
273c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    //===== test format and parse ==================
274c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    Formattable formattable;
275c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    formattable.setInt64(10);
276c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    UnicodeString res;
277c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    FieldPosition pos = 0;
278c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    status = U_ZERO_ERROR;
279c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    dtitvfmt->format(formattable, res, pos, status);
280c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if ( status != U_ILLEGAL_ARGUMENT_ERROR ) {
281c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: format non-date-interval object should set U_ILLEGAL_ARGUMENT_ERROR - exitting");
282c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        return;
283c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
284c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
285c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    DateInterval* dtitv = new DateInterval(3600*24*365, 3600*24*366);
286c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    formattable.adoptObject(dtitv);
287c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    res.remove();
288c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    pos = 0;
289c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    status = U_ZERO_ERROR;
290c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    dtitvfmt->format(formattable, res, pos, status);
291c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if ( U_FAILURE(status) ) {
292c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: format date interval failed - exitting");
293c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        return;
294c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
295c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
296c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    const DateFormat* dfmt = dtitvfmt->getDateFormat();
297c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    Calendar* fromCal = dfmt->getCalendar()->clone();
298c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    Calendar* toCal = dfmt->getCalendar()->clone();
299c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    res.remove();
300c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    pos = 0;
301c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    status = U_ZERO_ERROR;
302c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    dtitvfmt->format(*fromCal, *toCal, res, pos, status);
303c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if ( U_FAILURE(status) ) {
304c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: format date interval failed - exitting");
305c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        return;
306c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
307c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    delete fromCal;
308c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    delete toCal;
309c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
310c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
311c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    Formattable fmttable;
312c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    status = U_ZERO_ERROR;
313b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    // TODO: why do I need cast?
314c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    ((Format*)dtitvfmt)->parseObject(res, fmttable, status);
315c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if ( status != U_INVALID_FORMAT_ERROR ) {
316c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dataerrln("ERROR: parse should set U_INVALID_FORMAT_ERROR - exitting");
317c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        return;
318c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
319c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
320c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    delete dtitvfmt;
321c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
322b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho    //====== test setting time zone
323b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho    logln("Testing DateIntervalFormat set & format with different time zones, get time zone");
324b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho    status = U_ZERO_ERROR;
325b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho    dtitvfmt = DateIntervalFormat::createInstance("MMMdHHmm", Locale::getEnglish(), status);
326b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho    if ( U_SUCCESS(status) ) {
327b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        UDate date1 = 1299090600000.0; // 2011-Mar-02 1030 in US/Pacific, 2011-Mar-03 0330 in Asia/Tokyo
328b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        UDate date2 = 1299115800000.0; // 2011-Mar-02 1730 in US/Pacific, 2011-Mar-03 1030 in Asia/Tokyo
329b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho
330b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        DateInterval * dtitv12 = new DateInterval(date1, date2);
331b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        TimeZone * tzCalif = TimeZone::createTimeZone("US/Pacific");
332b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        TimeZone * tzTokyo = TimeZone::createTimeZone("Asia/Tokyo");
33359d709d503bab6e2b61931737e662dd293b40578ccornelius        UnicodeString fmtCalif = UnicodeString(ctou("Mar 2, 10:30 \\u2013 17:30"));
33459d709d503bab6e2b61931737e662dd293b40578ccornelius        UnicodeString fmtTokyo = UnicodeString(ctou("Mar 3, 03:30 \\u2013 10:30"));
335b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho
336b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        dtitvfmt->adoptTimeZone(tzCalif);
337b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        res.remove();
338b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        pos = 0;
339b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        status = U_ZERO_ERROR;
340b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        dtitvfmt->format(dtitv12, res, pos, status);
341b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        if ( U_SUCCESS(status) ) {
342b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho            if ( res.compare(fmtCalif) != 0 ) {
343b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho                errln("ERROR: DateIntervalFormat::format for tzCalif, expect " + fmtCalif + ", get " + res);
344b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho            }
345b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        } else {
346b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho            errln("ERROR: DateIntervalFormat::format for tzCalif, status %s", u_errorName(status));
347b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        }
348b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho
349b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        dtitvfmt->setTimeZone(*tzTokyo);
350b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        res.remove();
351b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        pos = 0;
352b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        status = U_ZERO_ERROR;
353b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        dtitvfmt->format(dtitv12, res, pos, status);
354b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        if ( U_SUCCESS(status) ) {
355b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho            if ( res.compare(fmtTokyo) != 0 ) {
356b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho                errln("ERROR: DateIntervalFormat::format for fmtTokyo, expect " + fmtTokyo + ", get " + res);
357b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho            }
358b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        } else {
359b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho            errln("ERROR: DateIntervalFormat::format for tzTokyo, status %s", u_errorName(status));
360b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        }
361b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho
362b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        if ( dtitvfmt->getTimeZone() != *tzTokyo ) {
363b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho            errln("ERROR: DateIntervalFormat::getTimeZone returns mismatch.");
364b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        }
365b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho
366b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        delete tzTokyo; // tzCalif was owned by dtitvfmt which should have deleted it
367b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        delete dtitv12;
368b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        delete dtitvfmt;
369b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho    } else {
370b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho        errln("ERROR: DateIntervalFormat::createInstance(\"MdHH\", Locale::getEnglish(), ...), status %s", u_errorName(status));
371b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho    }
372c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    //====== test format  in testFormat()
373c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
37450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    //====== test DateInterval class (better coverage)
37550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    DateInterval dtitv1(3600*24*365, 3600*24*366);
37650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    DateInterval dtitv2(dtitv1);
37750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
37850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    if (!(dtitv1 == dtitv2)) {
37950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        errln("ERROR: Copy constructor failed for DateInterval.");
38050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    }
38150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
38250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    DateInterval dtitv3(3600*365, 3600*366);
38350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    dtitv3 = dtitv1;
38450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    if (!(dtitv3 == dtitv1)) {
38550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        errln("ERROR: Equal operator failed for DateInterval.");
38650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    }
38750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
38850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    DateInterval *dtitv4 = dtitv1.clone();
38950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    if (*dtitv4 != dtitv1) {
39050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        errln("ERROR: Equal operator failed for DateInterval.");
39150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    }
39250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    delete dtitv4;
393c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru}
394c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
395c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
396c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru/**
397c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru * Test format
398c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru */
399c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queruvoid DateIntervalFormatTest::testFormat() {
400c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    // first item is date pattern
401c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    // followed by a group of locale/from_data/to_data/skeleton/interval_data
402c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    const char* DATA[] = {
403c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "yyyy MM dd HH:mm:ss",
404b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        // test root
4058393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "root", "2007 11 10 10:10:10", "2007 12 10 10:10:10", "yM", "2007-11 \\u2013 2007-12",
406b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
407b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        // test 'H' and 'h', using availableFormat in fallback
408b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 10 15:10:10", "Hms", "10:10:10 \\u2013 15:10:10",
409b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 10 15:10:10", "hms", "10:10:10 AM \\u2013 3:10:10 PM",
410b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
411c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMM", "October 2007 \\u2013 October 2008",
412c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMM", "Oct 2007 \\u2013 Oct 2008",
413c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        // test skeleton with both date and time
41454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
415c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
41659d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "dMMMyhm", "Nov 10, 2007, 10:10 \\u2013 11:10 AM",
417c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
418c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "hms", "10:10:10 AM \\u2013 11:10:10 AM",
41950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "Hms", "10:10:10 \\u2013 11:10:10",
42050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "en", "2007 11 10 20:10:10", "2007 11 10 21:10:10", "Hms", "20:10:10 \\u2013 21:10:10",
421c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
422c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMMy", "Wednesday, October 10, 2007 \\u2013 Friday, October 10, 2008",
423c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
424c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMMy", "October 10, 2007 \\u2013 October 10, 2008",
425c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
426c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMM", "October 10, 2007 \\u2013 October 10, 2008",
427c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
428c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMMy", "October 2007 \\u2013 October 2008",
429c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
430c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMM", "Wednesday, October 10, 2007 \\u2013 Friday, October 10, 2008",
431c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
432c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMMMy", "Wed, Oct 10, 2007 \\u2013 Fri, Oct 10, 2008",
433c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
434c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMy", "Oct 10, 2007 \\u2013 Oct 10, 2008",
435c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
436c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMM", "Oct 10, 2007 \\u2013 Oct 10, 2008",
437c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
438c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMy", "Oct 2007 \\u2013 Oct 2008",
439c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
440c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMMM", "Wed, Oct 10, 2007 \\u2013 Fri, Oct 10, 2008",
441c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
4428393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMy", "Wed, 10/10/2007 \\u2013 Fri, 10/10/2008",
443c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
4448393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMy", "10/10/2007 \\u2013 10/10/2008",
445c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
4468393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dM", "10/10/2007 \\u2013 10/10/2008",
447c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
4488393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "My", "10/2007 \\u2013 10/2008",
449c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
4508393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdM", "Wed, 10/10/2007 \\u2013 Fri, 10/10/2008",
451c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
4528393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "d", "10/10/2007 \\u2013 10/10/2008",
453c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
454c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Ed", "10 Wed \\u2013 10 Fri",
455c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
45659d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "y", "2007 \\u2013 2008",
457c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
4588393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "M", "10/2007 \\u2013 10/2008",
459c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
460c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
461c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
46254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
46354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
46454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
465c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
46654dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
467c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
46854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
469c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
47054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
471c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
47254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
473c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
47454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
475c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
4768393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEddMMyyyy", "Wed, 10/10/2007 \\u2013 Fri, 10/10/2008",
477c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
4788393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EddMMy", "Wed, 10/10/2007 \\u2013 Fri, 10/10/2008",
479c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
48054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
481c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
48254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
483c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
48454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
485c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
486c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMMMy", "O 10, 2007 \\u2013 O 10, 2008",
487c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
4888393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEEdM", "W, 10/10/2007 \\u2013 F, 10/10/2008",
489c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
490c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMMy", "Wednesday, October 10 \\u2013 Saturday, November 10, 2007",
491c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
492c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMy", "October 10 \\u2013 November 10, 2007",
493c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
494c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMM", "October 10 \\u2013 November 10",
495c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
49659d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMMy", "October \\u2013 November 2007",
497c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
498c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMM", "Wednesday, October 10 \\u2013 Saturday, November 10",
499c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
500c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMMMy", "Wed, Oct 10 \\u2013 Sat, Nov 10, 2007",
501c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
502c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMy", "Oct 10 \\u2013 Nov 10, 2007",
503c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
504c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMM", "Oct 10 \\u2013 Nov 10",
505c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
50659d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMy", "Oct \\u2013 Nov 2007",
507c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
508c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMMM", "Wed, Oct 10 \\u2013 Sat, Nov 10",
509c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
5108393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMy", "Wed, 10/10/2007 \\u2013 Sat, 11/10/2007",
511c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
5128393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMy", "10/10/2007 \\u2013 11/10/2007",
513c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
514c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
5158393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "My", "10/2007 \\u2013 11/2007",
516c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
517c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdM", "Wed, 10/10 \\u2013 Sat, 11/10",
518c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
519c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "d", "10/10 \\u2013 11/10",
520c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
521c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "Ed", "10 Wed \\u2013 10 Sat",
522c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
523c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "y", "2007",
524c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
52559d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "M", "10 \\u2013 11",
526c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
52759d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMM", "Oct \\u2013 Nov",
528c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
52959d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMM", "October \\u2013 November",
530c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
53154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
53254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
53354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
534c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
53554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
536c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
53754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
538c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
53954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
540c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
54154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
542c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
54354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
544c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
5458393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEddMMyyyy", "Wed, 10/10/2007 \\u2013 Sat, 11/10/2007",
546c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
5478393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EddMMy", "Wed, 10/10/2007 \\u2013 Sat, 11/10/2007",
548c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
549c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
55054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
551c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
55254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
553c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
554c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMMy", "O 10 \\u2013 N 10, 2007",
555c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
556c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEEdM", "W, 10/10 \\u2013 S, 11/10",
557c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
558c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMMy", "Saturday, November 10 \\u2013 Tuesday, November 20, 2007",
559c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
56059d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMy", "November 10 \\u2013 20, 2007",
561c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
56259d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMM", "November 10 \\u2013 20",
563c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
564c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
565c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMM", "Saturday, November 10 \\u2013 Tuesday, November 20",
566c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
567c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMMy", "Sat, Nov 10 \\u2013 Tue, Nov 20, 2007",
568c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
56959d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMy", "Nov 10 \\u2013 20, 2007",
570c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
57159d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMM", "Nov 10 \\u2013 20",
572c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
573c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMy", "Nov 2007",
574c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
575c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMM", "Sat, Nov 10 \\u2013 Tue, Nov 20",
576c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
5778393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sat, 11/10/2007 \\u2013 Tue, 11/20/2007",
578c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
5798393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "11/10/2007 \\u2013 11/20/2007",
580c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
581c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "11/10 \\u2013 11/20",
582c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
583c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "11/2007",
584c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
585c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "Sat, 11/10 \\u2013 Tue, 11/20",
586c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
58759d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10 \\u2013 20",
588c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
589c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Ed", "10 Sat \\u2013 20 Tue",
590c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
591c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007",
592c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
593c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11",
594c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
595c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMM", "Nov",
596c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
597c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMM", "November",
598c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
59954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
60054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
60154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
602c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
60354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
604c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
60554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
606c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
60754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
608c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
60954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
610c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
61154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
612c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
6138393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEddMMyyyy", "Sat, 11/10/2007 \\u2013 Tue, 11/20/2007",
614c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
6158393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EddMMy", "Sat, 11/10/2007 \\u2013 Tue, 11/20/2007",
616c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
61754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
618c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
61954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
620c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
62154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
62254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
62354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "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",
624c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
62559d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMMy", "N 10 \\u2013 20, 2007",
626c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
627c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEEdM", "S, 11/10 \\u2013 T, 11/20",
628c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
629c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMMy", "Wednesday, January 10, 2007",
630c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
631c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMMy", "January 10, 2007",
632c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
633c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMM", "January 10",
634c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
635c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMMy", "January 2007",
636c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
637c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMM", "Wednesday, January 10",
638c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
639c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdMMMy", "Wed, Jan 10, 2007",
640c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
641c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMy", "Jan 10, 2007",
642c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
643c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMM", "Jan 10",
644c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
645c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMy", "Jan 2007",
646c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
647c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdMMM", "Wed, Jan 10",
648c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
649c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
650c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMy", "1/10/2007",
651c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
652c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dM", "1/10",
653c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
654c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "My", "1/2007",
655c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
656c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdM", "Wed, 1/10",
657c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
658c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "d", "10",
659c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
660c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Ed", "10 Wed",
661c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
662c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "y", "2007",
663c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
664c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "M", "1",
665c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
666c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMM", "Jan",
667c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
668c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMM", "January",
669c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
670c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hm", "10:00 AM \\u2013 2:10 PM",
67159d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Hm", "10:00 \\u2013 14:10",
672c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
673c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmv", "10:00 AM \\u2013 2:10 PM PT",
674c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
675c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmz", "10:00 AM \\u2013 2:10 PM PST",
676c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
677c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10 AM \\u2013 2 PM",
67859d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "H", "10 \\u2013 14",
679c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
680c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
681c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hz", "10 AM \\u2013 2 PM PST",
682c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
683c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEddMMyyyy", "Wed, 01/10/2007",
684c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
685c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EddMMy", "Wed, 01/10/2007",
686c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
687c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hhmm", "10:00 AM \\u2013 2:10 PM",
68859d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "HHmm", "10:00 \\u2013 14:10",
689c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
690c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hhmmzz", "10:00 AM \\u2013 2:10 PM PST",
691c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
692b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hms", "10:00:10 AM \\u2013 2:10:10 PM",
69350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Hms", "10:00:10 \\u2013 14:10:10",
694c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
695b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMMMy", "J 10, 2007",
696c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
697c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEEdM", "W, 1/10",
698c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMMy", "January 10, 2007",
699c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
700c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMM", "January 10",
701c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
702c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "MMMMy", "January 2007",
703c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
704c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EEEEdMMMM", "Wednesday, January 10",
705c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
706c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMMMy", "Wed, Jan 10, 2007",
707c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
708c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMy", "Jan 10, 2007",
709c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
710c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMM", "Jan 10",
711c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
712c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
713c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMMM", "Wed, Jan 10",
714c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
715c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMy", "Wed, 1/10/2007",
716c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
717c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMy", "1/10/2007",
718c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
719c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
720c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "My", "1/2007",
721c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
722c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdM", "Wed, 1/10",
723c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
724c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "d", "10",
725c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
726c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
727c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "y", "2007",
728c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
729c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "M", "1",
730c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
731c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
732c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
73359d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "10:00 \\u2013 10:20 AM",
73459d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "Hm", "10:00 \\u2013 10:20",
735c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
736c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
73759d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmz", "10:00 \\u2013 10:20 AM PST",
738c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
739c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
74050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hv", "10 AM PT",
741c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
742c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
743c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
744c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EddMMy", "Wed, 01/10/2007",
745c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
74659d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hhmm", "10:00 \\u2013 10:20 AM",
74759d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "HHmm", "10:00 \\u2013 10:20",
748c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
74959d709d503bab6e2b61931737e662dd293b40578ccornelius        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hhmmzz", "10:00 \\u2013 10:20 AM PST",
750c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
751c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
752b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMMMy", "J 10, 2007",
753c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
754c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
755c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMMy", "Wednesday, January 10, 2007",
756c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
757c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMMMy", "January 10, 2007",
758c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
759c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
760c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "MMMMy", "January 2007",
761c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
762c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMM", "Wednesday, January 10",
763c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
764c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
765c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMMy", "Jan 10, 2007",
766c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
767c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMM", "Jan 10",
768c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
769c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
770c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdMMM", "Wed, Jan 10",
771c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
772c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdMy", "Wed, 1/10/2007",
773c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
774c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMy", "1/10/2007",
775c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
776c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
777c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "My", "1/2007",
778c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
779c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdM", "Wed, 1/10",
780c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
781c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "d", "10",
782c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
783c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
784c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "y", "2007",
785c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
786c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "M", "1",
787c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
788c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
789c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "MMMM", "January",
790c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
791c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "10:10 AM",
79250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Hm", "10:10",
793c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
794c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
795c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 AM PST",
796c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
79750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "10 AM",
798c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
79950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hv", "10 AM PT",
800c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
801c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
802c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEddMMyyyy", "Wed, 01/10/2007",
803c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
804c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
805c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hhmm", "10:10 AM",
80650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "HHmm", "10:10",
807c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
808c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hhmmzz", "10:10 AM PST",
809c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
810c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
811b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMMMMy", "J 10, 2007",
812c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
813c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEEdM", "W, 1/10",
814c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
815c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "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",
816c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
817c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
818c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMy", "2007\\u5e7410\\u670810\\u65e5\\u81f311\\u670810\\u65e5",
819c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
820c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
821c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMMy", "2007\\u5e7410\\u6708\\u81f311\\u6708",
822c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
823c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
824682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hmv", "2007/10/10 \\u6D1B\\u6749\\u77F6\\u65F6\\u95F4\\u4E0A\\u534810:10 \\u2013 2007/11/10 \\u6D1B\\u6749\\u77F6\\u65F6\\u95F4\\u4E0A\\u534810:10",
825c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
826c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "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",
827c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
828c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
829c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMM", "11\\u670810\\u65e5\\u81f320\\u65e5",
830c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
831b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMMy", "2007\\u5E7411\\u6708", // (fixed expected result per ticket:6626:)
832c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
833c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "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",
834c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
835c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
8368393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "2007/11/10\\u5468\\u516d\\u81f32007/11/20\\u5468\\u4e8c",
837c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
838c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
83954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "11/10 \\u2013 11/20",
840c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
84154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "2007/11",
842c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
84354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "11/10\\u5468\\u516d\\u81f311/20\\u5468\\u4e8c",
844c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
845c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
846b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007\\u5E74", // (fixed expected result per ticket:6626:)
847c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
84827f654740f2a26ad62a5c155af9199af9e69b889claireho        "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11\\u6708",
849c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
85054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMM", "11\\u6708", // (fixed expected result per ticket:6626: and others)
851c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
8528393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius
853682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hmz", "2007/11/10 GMT-8\\u4e0a\\u534810:10 \\u2013 2007/11/20 GMT-8\\u4e0a\\u534810:10",
854c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
85554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "h", "2007/11/10 \\u4e0a\\u534810\\u65f6 \\u2013 2007/11/20 \\u4e0a\\u534810\\u65f6",
856c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
857b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "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:)
858c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
859c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hm", "\\u4e0a\\u534810:00\\u81f3\\u4e0b\\u53482:10",
860c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
861c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
862682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmz", "GMT-8\\u4e0a\\u534810:00\\u81f3\\u4e0b\\u53482:10",
863c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
86454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "\\u4e0a\\u534810\\u65F6\\u81f3\\u4e0b\\u53482\\u65f6",
865c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
866682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hv", "\\u6D1B\\u6749\\u77F6\\u65F6\\u95F4\\u4E0A\\u534810\\u65F6\\u81F3\\u4E0B\\u53482\\u65F6",
867c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
868c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "\\u4e0a\\u534810:00\\u81f310:20",
869c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
870682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "\\u6D1B\\u6749\\u77F6\\u65F6\\u95F4\\u4E0A\\u534810:00\\u81F310:20",
871c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
872682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "GMT-8\\u4e0a\\u534810\\u65f6",
873c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
874c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "\\u4e0a\\u534810:10",
875c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
87627f654740f2a26ad62a5c155af9199af9e69b889claireho        "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "\\u4e0a\\u534810\\u65f6",
877c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
87854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMy", "Mittwoch, 10. Okt. 2007 - Freitag, 10. Okt. 2008",
879c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
880c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
88154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMM", "10. Okt. 2007 - 10. Okt. 2008",
882c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
88354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMy", "Okt. 2007 - Okt. 2008",
884c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
885c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
8868393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMy", "Mi., 10.10.2007 - Fr., 10.10.2008",
887c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
8888393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMy", "10.10.2007 - 10.10.2008",
889c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
890c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
8918393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "My", "10.2007 - 10.2008",
892c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
8938393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdM", "Mi., 10.10.2007 - Fr., 10.10.2008",
894c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
895c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
896c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "y", "2007-2008",
897c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
8988393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "M", "10.2007 - 10.2008",
899c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
900c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
901b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "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.",
90250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Hm", "10.10.2007 10:10 - 10.10.2008 10:10",
903c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
90454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMy", "Mittwoch, 10. Okt. - Samstag, 10. Nov. 2007",
905c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
906c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
90754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMM", "10. Okt. - 10. Nov.",
908c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
90954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMy", "Okt.-Nov. 2007",
910c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
91154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMM", "Mittwoch, 10. Okt. - Samstag, 10. Nov.",
912c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
913c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
914c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dM", "10.10. - 10.11.",
915c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
9168393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "My", "10.2007 - 11.2007",
917c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
918c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
919c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "d", "10.10. - 10.11.",
920c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
921c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "y", "2007",
922c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
923c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
92454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMM", "Okt.-Nov.",
925c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
926c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
927b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "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.",
92850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "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",
929c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
93054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMy", "Samstag, 10. - Dienstag, 20. Nov. 2007",
931c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
93254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMy", "10.-20. Nov. 2007",
933c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
934c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
93554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMy", "Nov. 2007",
936c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
93754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMM", "Samstag, 10. - Dienstag, 20. Nov.",
938c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
9398393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sa., 10.11.2007 - Di., 20.11.2007",
940c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
941c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
942c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "10.11. - 20.11.",
943c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
94450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "11.2007",
945c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
946c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
947c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10.-20.",
948c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
949c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007",
950c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
951c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
952682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hmv", "10.11.2007 10:10 vorm. Los Angeles Zeit - 20.11.2007 10:10 vorm. Los Angeles Zeit",
953c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
95454dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMy", "Mittwoch, 10. Jan. 2007",
955c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
956c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
95754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMM", "10. Jan.",
958c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
95954dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMy", "Jan. 2007",
960c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
96154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMM", "Mittwoch, 10. Jan.",
962c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
963c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
96450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10 vorm. - 2 nachm.",
96527f654740f2a26ad62a5c155af9199af9e69b889claireho        "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "H", "10-14 Uhr",
966c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
96754dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EEEEdMMM", "Mittwoch, 10. Jan.",
968c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
969c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
970682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "10:00-10:20 vorm. Los Angeles Zeit",
971c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
972682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmz", "10:00-10:20 vorm. GMT-8",
973c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
97450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10 vorm.",
97527f654740f2a26ad62a5c155af9199af9e69b889claireho        "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "H", "10 Uhr",
976c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
977c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
978682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "10 vorm. GMT-8",
979c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
98054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMy", "Mittwoch, 10. Jan. 2007",
981c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
982c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
983682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmv", "10:10 vorm. Los Angeles Zeit",
984c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
985682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 vorm. GMT-8",
986c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
9878393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius
988682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hv", "10 vorm. Los Angeles Zeit",
98950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
990682a8ebb21f708096cbeb6cdb69d449cfff85ad1Neil Fuller        "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hz", "10 vorm. GMT-8",
99150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
99250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        // Thai (default calendar buddhist)
99350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
99459d709d503bab6e2b61931737e662dd293b40578ccornelius        // BEGIN ANDROID-changed.  Default calendar in Android is Gregorian for th locale.
99559d709d503bab6e2b61931737e662dd293b40578ccornelius        // "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",
99650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
99759d709d503bab6e2b61931737e662dd293b40578ccornelius        // "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "dMMM", "10 \\u0E15.\\u0E04. 2550 - 10 \\u0E15.\\u0E04. 2551",
99850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
99959d709d503bab6e2b61931737e662dd293b40578ccornelius        // "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "MMMy", "\\u0E15.\\u0E04. 2550 - \\u0E15.\\u0E04. 2551",
100050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
100150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
100259d709d503bab6e2b61931737e662dd293b40578ccornelius        // "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "EdMy", "\\u0E1E. 10/10/2550 - \\u0E28. 10/10/2551",
100350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
100459d709d503bab6e2b61931737e662dd293b40578ccornelius        // "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "dMy", "10/10/2550 - 10/10/2551",
100550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
1006c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
10078393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "My", "10/2550 - 10/2551",
100850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
100959d709d503bab6e2b61931737e662dd293b40578ccornelius        // "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "EdM", "\\u0E1E. 10/10/2550 - \\u0E28. 10/10/2551",
101050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
101150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
101250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "y", "2550-2551",
101350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
10148393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "M", "10/2550 - 10/2551",
101550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
101650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
101759d709d503bab6e2b61931737e662dd293b40578ccornelius        // "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",
101850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
101950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
10208393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "dMMM", "10 \\u0E15.\\u0E04. - 10 \\u0E1E.\\u0E22.",
102150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
102259d709d503bab6e2b61931737e662dd293b40578ccornelius        // "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "MMMy", "\\u0E15.\\u0E04.-\\u0E1E.\\u0E22. 2550",
102350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
102450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho       "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "dM", "10/10 - 10/11",
102550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
10268393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "My", "10/2550 - 11/2550",
102750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
102850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
102950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "d", "10/10 - 10/11",
103050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
103159d709d503bab6e2b61931737e662dd293b40578ccornelius        // "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "y", "\\u0E1E.\\u0E28. 2550",
103250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
103350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
103450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "MMM", "\\u0E15.\\u0E04.-\\u0E1E.\\u0E22.",
103559d709d503bab6e2b61931737e662dd293b40578ccornelius        // END ANDROID-changed
1036c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    };
1037c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    expect(DATA, ARRAY_SIZE(DATA));
1038c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru}
1039c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1040c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1041c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queruvoid DateIntervalFormatTest::expect(const char** data, int32_t data_length) {
1042c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    int32_t i = 0;
1043c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    UErrorCode ec = U_ZERO_ERROR;
1044c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    UnicodeString str, str2;
1045c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    const char* pattern = data[0];
1046c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    i++;
1047c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1048c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#ifdef DTIFMTTS_DEBUG
1049c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    char result[1000];
1050c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    char mesg[1000];
1051c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    sprintf(mesg, "locale: %s\n", locName);
1052c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    PRINTMESG(mesg);
1053c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#endif
1054c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1055c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    while (i<data_length) {
1056c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        const char* locName = data[i++];
1057c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        Locale loc(locName);
1058c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        SimpleDateFormat ref(pattern, loc, ec);
105950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        if (U_FAILURE(ec)) {
106050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho            dataerrln("contruct SimpleDateFormat in expect failed: %s", u_errorName(ec));
106150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho            return;
106250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        }
1063c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        // 'f'
1064c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        const char* datestr = data[i++];
1065c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        const char* datestr_2 = data[i++];
1066c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#ifdef DTIFMTTS_DEBUG
1067c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        sprintf(mesg, "original date: %s - %s\n", datestr, datestr_2);
1068c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        PRINTMESG(mesg)
1069c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#endif
1070c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        UDate date = ref.parse(ctou(datestr), ec);
1071c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("parse 1st data in expect", ec)) return;
1072c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        UDate date_2 = ref.parse(ctou(datestr_2), ec);
1073c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("parse 2nd data in expect", ec)) return;
1074c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        DateInterval dtitv(date, date_2);
1075c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1076c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        const UnicodeString& oneSkeleton = data[i++];
1077c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1078c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        DateIntervalFormat* dtitvfmt = DateIntervalFormat::createInstance(oneSkeleton, loc, ec);
1079c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("createInstance(skeleton) in expect", ec)) return;
1080c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        FieldPosition pos=0;
1081c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dtitvfmt->format(&dtitv, str.remove(), pos, ec);
1082c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("format in expect", ec)) return;
1083c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        assertEquals((UnicodeString)"\"" + locName + "\\" + oneSkeleton + "\\" + datestr + "\\" + datestr_2 + "\"", ctou(data[i++]), str);
1084c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1085c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1086c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1087c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#ifdef DTIFMTTS_DEBUG
1088c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        str.extract(0,  str.length(), result, "UTF-8");
1089c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        sprintf(mesg, "interval date: %s\n", result);
1090c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        std::cout << "//";
1091c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        PRINTMESG(mesg)
1092c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        std::cout << "\"" << locName << "\", "
1093c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru                 << "\"" << datestr << "\", "
1094c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru                 << "\"" << datestr_2 << "\", ";
1095c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        printUnicodeString(oneSkeleton);
1096c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        printUnicodeString(str);
1097c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        std::cout << "\n\n";
1098c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#endif
1099c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        delete dtitvfmt;
1100c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
1101c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru}
1102c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1103c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1104c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru/*
1105c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru * Test format using user defined DateIntervalInfo
1106c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru */
1107c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queruvoid DateIntervalFormatTest::testFormatUserDII() {
1108c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    // first item is date pattern
1109c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    const char* DATA[] = {
1110c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "yyyy MM dd HH:mm:ss",
1111c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Oct 10, 2007 --- Oct 10, 2008",
1112c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1113c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 Oct 10 - Nov 2007",
1114c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1115c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Nov 10, 2007 --- Nov 20, 2007",
1116c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1117c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Jan 10, 2007",
1118c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1119c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "Jan 10, 2007",
1120c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1121c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Jan 10, 2007",
1122c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1123c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "2007\\u5e7410\\u670810\\u65e5 --- 2008\\u5e7410\\u670810\\u65e5",
1124c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1125c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 10\\u6708 10 - 11\\u6708 2007",
1126c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1127c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007\\u5e7411\\u670810\\u65e5 --- 2007\\u5e7411\\u670820\\u65e5",
1128c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1129b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "2007\\u5e741\\u670810\\u65e5", // (fixed expected result per ticket:6626:)
1130c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1131b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "2007\\u5e741\\u670810\\u65e5", // (fixed expected result per ticket:6626:)
1132c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1133b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru        "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "2007\\u5e741\\u670810\\u65e5", // (fixed expected result per ticket:6626:)
1134c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
113554dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "10. Okt. 2007 --- 10. Okt. 2008",
1136c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1137c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
113854dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "10. Nov. 2007 --- 20. Nov. 2007",
1139c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
114054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "10. Jan. 2007",
1141c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
114254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius        "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "10. Jan. 2007",
1143c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1144c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
114559d709d503bab6e2b61931737e662dd293b40578ccornelius        "es", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "10 de oct. de 2007 --- 10 de oct. de 2008",
1146c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
114759d709d503bab6e2b61931737e662dd293b40578ccornelius        "es", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 oct. 10 - nov. 2007",
1148c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
114959d709d503bab6e2b61931737e662dd293b40578ccornelius        "es", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "10 de nov. de 2007 --- 20 de nov. de 2007",
1150c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
115159d709d503bab6e2b61931737e662dd293b40578ccornelius        "es", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "10 de ene. de 2007",
1152c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
115359d709d503bab6e2b61931737e662dd293b40578ccornelius        "es", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "10 de ene. de 2007",
1154b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho
115559d709d503bab6e2b61931737e662dd293b40578ccornelius        "es", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "10 de ene. de 2007",
1156c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    };
1157c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    expectUserDII(DATA, ARRAY_SIZE(DATA));
1158c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru}
1159c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1160c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
11618393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Corneliusvoid DateIntervalFormatTest::testSetIntervalPatternNoSideEffect() {
11628393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    UErrorCode ec = U_ZERO_ERROR;
11638393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    LocalPointer<DateIntervalInfo> dtitvinf(new DateIntervalInfo(ec));
11648393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    if (U_FAILURE(ec)) {
11658393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        errln("Failure encountered: %s", u_errorName(ec));
11668393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        return;
11678393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    }
11688393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    UnicodeString expected;
11698393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    dtitvinf->getIntervalPattern(ctou("yMd"), UCAL_DATE, expected, ec);
11708393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    dtitvinf->setIntervalPattern(ctou("yMd"), UCAL_DATE, ctou("M/d/y \\u2013 d"), ec);
11718393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    if (U_FAILURE(ec)) {
11728393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        errln("Failure encountered: %s", u_errorName(ec));
11738393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        return;
11748393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    }
11758393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    dtitvinf.adoptInstead(new DateIntervalInfo(ec));
11768393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    if (U_FAILURE(ec)) {
11778393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        errln("Failure encountered: %s", u_errorName(ec));
11788393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        return;
11798393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    }
11808393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    UnicodeString actual;
11818393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    dtitvinf->getIntervalPattern(ctou("yMd"), UCAL_DATE, actual, ec);
11828393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    if (U_FAILURE(ec)) {
11838393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        errln("Failure encountered: %s", u_errorName(ec));
11848393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        return;
11858393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    }
11868393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    if (expected != actual) {
11878393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        errln("DateIntervalInfo.setIntervalPattern should have no side effects.");
11888393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    }
11898393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius}
11908393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius
119159d709d503bab6e2b61931737e662dd293b40578ccorneliusvoid DateIntervalFormatTest::testYearFormats() {
119259d709d503bab6e2b61931737e662dd293b40578ccornelius    const Locale &enLocale = Locale::getEnglish();
119359d709d503bab6e2b61931737e662dd293b40578ccornelius    UErrorCode status = U_ZERO_ERROR;
119459d709d503bab6e2b61931737e662dd293b40578ccornelius    LocalPointer<Calendar> fromTime(Calendar::createInstance(enLocale, status));
119559d709d503bab6e2b61931737e662dd293b40578ccornelius    LocalPointer<Calendar> toTime(Calendar::createInstance(enLocale, status));
119659d709d503bab6e2b61931737e662dd293b40578ccornelius    if (U_FAILURE(status)) {
119759d709d503bab6e2b61931737e662dd293b40578ccornelius        errln("Failure encountered: %s", u_errorName(status));
119859d709d503bab6e2b61931737e662dd293b40578ccornelius        return;
119959d709d503bab6e2b61931737e662dd293b40578ccornelius    }
120059d709d503bab6e2b61931737e662dd293b40578ccornelius    // April 26, 113. Three digit year so that we can test 2 digit years;
120159d709d503bab6e2b61931737e662dd293b40578ccornelius    // 4 digit years with padded 0's and full years.
120259d709d503bab6e2b61931737e662dd293b40578ccornelius    fromTime->set(113, 3, 26);
120359d709d503bab6e2b61931737e662dd293b40578ccornelius    // April 28, 113.
120459d709d503bab6e2b61931737e662dd293b40578ccornelius    toTime->set(113, 3, 28);
120559d709d503bab6e2b61931737e662dd293b40578ccornelius    {
120659d709d503bab6e2b61931737e662dd293b40578ccornelius        LocalPointer<DateIntervalFormat> dif(DateIntervalFormat::createInstance("yyyyMd", enLocale, status));
120759d709d503bab6e2b61931737e662dd293b40578ccornelius        if (U_FAILURE(status)) {
120859d709d503bab6e2b61931737e662dd293b40578ccornelius            dataerrln("Failure encountered: %s", u_errorName(status));
120959d709d503bab6e2b61931737e662dd293b40578ccornelius            return;
121059d709d503bab6e2b61931737e662dd293b40578ccornelius        }
121159d709d503bab6e2b61931737e662dd293b40578ccornelius        UnicodeString actual;
121259d709d503bab6e2b61931737e662dd293b40578ccornelius        UnicodeString expected(ctou("4/26/0113 \\u2013 4/28/0113"));
121359d709d503bab6e2b61931737e662dd293b40578ccornelius        FieldPosition pos = 0;
121459d709d503bab6e2b61931737e662dd293b40578ccornelius        dif->format(*fromTime, *toTime, actual, pos, status);
121559d709d503bab6e2b61931737e662dd293b40578ccornelius        if (U_FAILURE(status)) {
121659d709d503bab6e2b61931737e662dd293b40578ccornelius            errln("Failure encountered: %s", u_errorName(status));
121759d709d503bab6e2b61931737e662dd293b40578ccornelius            return;
121859d709d503bab6e2b61931737e662dd293b40578ccornelius        }
121959d709d503bab6e2b61931737e662dd293b40578ccornelius        if (actual != expected) {
122059d709d503bab6e2b61931737e662dd293b40578ccornelius            errln("Expected " + expected + ", got: " + actual);
122159d709d503bab6e2b61931737e662dd293b40578ccornelius        }
122259d709d503bab6e2b61931737e662dd293b40578ccornelius    }
122359d709d503bab6e2b61931737e662dd293b40578ccornelius    {
122459d709d503bab6e2b61931737e662dd293b40578ccornelius        LocalPointer<DateIntervalFormat> dif(DateIntervalFormat::createInstance("yyMd", enLocale, status));
122559d709d503bab6e2b61931737e662dd293b40578ccornelius        if (U_FAILURE(status)) {
122659d709d503bab6e2b61931737e662dd293b40578ccornelius            errln("Failure encountered: %s", u_errorName(status));
122759d709d503bab6e2b61931737e662dd293b40578ccornelius            return;
122859d709d503bab6e2b61931737e662dd293b40578ccornelius        }
122959d709d503bab6e2b61931737e662dd293b40578ccornelius        UnicodeString actual;
123059d709d503bab6e2b61931737e662dd293b40578ccornelius        UnicodeString expected(ctou("4/26/13 \\u2013 4/28/13"));
123159d709d503bab6e2b61931737e662dd293b40578ccornelius        FieldPosition pos = 0;
123259d709d503bab6e2b61931737e662dd293b40578ccornelius        dif->format(*fromTime, *toTime, actual, pos, status);
123359d709d503bab6e2b61931737e662dd293b40578ccornelius        if (U_FAILURE(status)) {
123459d709d503bab6e2b61931737e662dd293b40578ccornelius            errln("Failure encountered: %s", u_errorName(status));
123559d709d503bab6e2b61931737e662dd293b40578ccornelius            return;
123659d709d503bab6e2b61931737e662dd293b40578ccornelius        }
123759d709d503bab6e2b61931737e662dd293b40578ccornelius        if (actual != expected) {
123859d709d503bab6e2b61931737e662dd293b40578ccornelius            errln("Expected " + expected + ", got: " + actual);
123959d709d503bab6e2b61931737e662dd293b40578ccornelius        }
124059d709d503bab6e2b61931737e662dd293b40578ccornelius    }
124159d709d503bab6e2b61931737e662dd293b40578ccornelius    {
124259d709d503bab6e2b61931737e662dd293b40578ccornelius        LocalPointer<DateIntervalFormat> dif(DateIntervalFormat::createInstance("yMd", enLocale, status));
124359d709d503bab6e2b61931737e662dd293b40578ccornelius        if (U_FAILURE(status)) {
124459d709d503bab6e2b61931737e662dd293b40578ccornelius            errln("Failure encountered: %s", u_errorName(status));
124559d709d503bab6e2b61931737e662dd293b40578ccornelius            return;
124659d709d503bab6e2b61931737e662dd293b40578ccornelius        }
124759d709d503bab6e2b61931737e662dd293b40578ccornelius        UnicodeString actual;
124859d709d503bab6e2b61931737e662dd293b40578ccornelius        UnicodeString expected(ctou("4/26/113 \\u2013 4/28/113"));
124959d709d503bab6e2b61931737e662dd293b40578ccornelius        FieldPosition pos = 0;
125059d709d503bab6e2b61931737e662dd293b40578ccornelius        dif->format(*fromTime, *toTime, actual, pos, status);
125159d709d503bab6e2b61931737e662dd293b40578ccornelius        if (U_FAILURE(status)) {
125259d709d503bab6e2b61931737e662dd293b40578ccornelius            errln("Failure encountered: %s", u_errorName(status));
125359d709d503bab6e2b61931737e662dd293b40578ccornelius            return;
125459d709d503bab6e2b61931737e662dd293b40578ccornelius        }
125559d709d503bab6e2b61931737e662dd293b40578ccornelius        if (actual != expected) {
125659d709d503bab6e2b61931737e662dd293b40578ccornelius            errln("Expected " + expected + ", got: " + actual);
125759d709d503bab6e2b61931737e662dd293b40578ccornelius        }
125859d709d503bab6e2b61931737e662dd293b40578ccornelius    }
125959d709d503bab6e2b61931737e662dd293b40578ccornelius}
12608393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius
1261c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queruvoid DateIntervalFormatTest::expectUserDII(const char** data,
1262c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru                                           int32_t data_length) {
1263c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    int32_t i = 0;
1264c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    UnicodeString str;
1265c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    UErrorCode ec = U_ZERO_ERROR;
1266c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    const char* pattern = data[0];
1267c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    i++;
1268c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1269c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    while ( i < data_length ) {
1270c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        const char* locName = data[i++];
1271c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        Locale loc(locName);
1272c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        SimpleDateFormat ref(pattern, loc, ec);
127350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        if (U_FAILURE(ec)) {
127450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho            dataerrln("contruct SimpleDateFormat in expectUserDII failed: %s", u_errorName(ec));
127550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho            return;
127650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho        }
1277c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        const char* datestr = data[i++];
1278c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        const char* datestr_2 = data[i++];
1279c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        UDate date = ref.parse(ctou(datestr), ec);
1280c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("parse in expectUserDII", ec)) return;
1281c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        UDate date_2 = ref.parse(ctou(datestr_2), ec);
1282c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("parse in expectUserDII", ec)) return;
1283c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        DateInterval dtitv(date, date_2);
1284c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1285c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        ec = U_ZERO_ERROR;
1286c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        // test user created DateIntervalInfo
1287c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        DateIntervalInfo* dtitvinf = new DateIntervalInfo(ec);
1288c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dtitvinf->setFallbackIntervalPattern("{0} --- {1}", ec);
1289c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dtitvinf->setIntervalPattern(UDAT_YEAR_ABBR_MONTH_DAY, UCAL_MONTH, "yyyy MMM d - MMM y",ec);
1290c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("DateIntervalInfo::setIntervalPattern", ec)) return;
1291c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dtitvinf->setIntervalPattern(UDAT_YEAR_ABBR_MONTH_DAY, UCAL_HOUR_OF_DAY, "yyyy MMM d HH:mm - HH:mm", ec);
1292c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("DateIntervalInfo::setIntervalPattern", ec)) return;
1293c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        DateIntervalFormat* dtitvfmt = DateIntervalFormat::createInstance(UDAT_YEAR_ABBR_MONTH_DAY, loc, *dtitvinf, ec);
1294c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        delete dtitvinf;
1295c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("createInstance(skeleton,dtitvinf) in expectUserDII", ec)) return;
1296c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        FieldPosition pos=0;
1297c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dtitvfmt->format(&dtitv, str.remove(), pos, ec);
1298c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("format in expectUserDII", ec)) return;
1299c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        assertEquals((UnicodeString)"\"" + locName + "\\" + datestr + "\\" + datestr_2 + "\"", ctou(data[i++]), str);
1300c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#ifdef DTIFMTTS_DEBUG
1301c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        char result[1000];
1302c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        char mesg[1000];
1303c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        PRINTMESG("interval format using user defined DateIntervalInfo\n");
1304c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        str.extract(0,  str.length(), result, "UTF-8");
1305c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        sprintf(mesg, "interval date: %s\n", result);
1306c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        PRINTMESG(mesg);
1307c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#endif
1308c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        delete dtitvfmt;
1309c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
1310c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru}
1311c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1312c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1313c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queruvoid DateIntervalFormatTest::testStress() {
1314b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    if(quick){
1315b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    	logln("Quick mode: Skipping test");
1316b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    	return;
1317b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    }
1318b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru	const char* DATA[] = {
1319c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "yyyy MM dd HH:mm:ss",
1320c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "2007 10 10 10:10:10", "2008 10 10 10:10:10",
1321c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "2007 10 10 10:10:10", "2007 11 10 10:10:10",
1322c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "2007 11 10 10:10:10", "2007 11 20 10:10:10",
1323c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "2007 01 10 10:00:10", "2007 01 10 14:10:10",
1324c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "2007 01 10 10:00:10", "2007 01 10 10:20:10",
1325c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "2007 01 10 10:10:10", "2007 01 10 10:10:20",
1326c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    };
1327c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1328c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    const char* testLocale[][3] = {
1329c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        //{"th", "", ""},
1330c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"en", "", ""},
1331c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"zh", "", ""},
1332c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"de", "", ""},
1333c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"ar", "", ""},
1334c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"en", "GB",  ""},
1335c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"fr", "", ""},
1336c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"it", "", ""},
1337c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"nl", "", ""},
1338c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"zh", "TW",  ""},
1339c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"ja", "", ""},
1340c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"pt", "BR", ""},
1341c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"ru", "", ""},
1342c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"pl", "", ""},
1343c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"tr", "", ""},
1344c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"es", "", ""},
1345c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"ko", "", ""},
1346c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"sv", "", ""},
1347c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"fi", "", ""},
1348c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"da", "", ""},
1349c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"pt", "PT", ""},
1350c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"ro", "", ""},
1351c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"hu", "", ""},
1352c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"he", "", ""},
1353c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"in", "", ""},
1354c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"cs", "", ""},
1355c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"el", "", ""},
1356c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"no", "", ""},
1357c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"vi", "", ""},
1358c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"bg", "", ""},
1359c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"hr", "", ""},
1360c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"lt", "", ""},
1361c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"sk", "", ""},
1362c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"sl", "", ""},
1363c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"sr", "", ""},
1364c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"ca", "", ""},
1365c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"lv", "", ""},
1366c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"uk", "", ""},
1367c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        {"hi", "", ""},
1368c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    };
1369c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1370c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    uint32_t localeIndex;
1371c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    for ( localeIndex = 0; localeIndex < ARRAY_SIZE(testLocale); ++localeIndex ) {
1372c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        char locName[32];
1373c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        uprv_strcpy(locName, testLocale[localeIndex][0]);
1374c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        uprv_strcat(locName, testLocale[localeIndex][1]);
1375c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        stress(DATA, ARRAY_SIZE(DATA), Locale(testLocale[localeIndex][0], testLocale[localeIndex][1], testLocale[localeIndex][2]), locName);
1376c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
1377c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru}
1378c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1379c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1380c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queruvoid DateIntervalFormatTest::stress(const char** data, int32_t data_length,
1381c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru                                    const Locale& loc, const char* locName) {
1382c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    UnicodeString skeleton[] = {
1383c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "EEEEdMMMMy",
1384c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "dMMMMy",
1385c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "dMMMM",
1386c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "MMMMy",
1387c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "EEEEdMMMM",
1388c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "EdMMMy",
1389c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "dMMMy",
1390c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "dMMM",
1391c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "MMMy",
1392c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "EdMMM",
1393c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "EdMy",
1394c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "dMy",
1395c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "dM",
1396c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "My",
1397c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "EdM",
1398c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "d",
1399c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "Ed",
1400c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "y",
1401c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "M",
1402c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "MMM",
1403c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "MMMM",
1404c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "hm",
1405c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "hmv",
1406c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "hmz",
1407c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "h",
1408c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "hv",
1409c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "hz",
1410c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "EEddMMyyyy", // following could be normalized
1411c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "EddMMy",
1412c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "hhmm",
1413c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "hhmmzz",
1414c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "hms",  // following could not be normalized
1415c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "dMMMMMy",
1416c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        "EEEEEdM",
1417c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    };
1418c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1419c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    int32_t i = 0;
1420c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    UErrorCode ec = U_ZERO_ERROR;
1421c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    UnicodeString str, str2;
1422c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    SimpleDateFormat ref(data[i++], loc, ec);
1423c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    if (!assertSuccess("construct SimpleDateFormat", ec)) return;
1424c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1425c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#ifdef DTIFMTTS_DEBUG
1426c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    char result[1000];
1427c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    char mesg[1000];
1428c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    sprintf(mesg, "locale: %s\n", locName);
1429c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    PRINTMESG(mesg);
1430c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#endif
1431c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1432c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    while (i<data_length) {
1433c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1434c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        // 'f'
1435c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        const char* datestr = data[i++];
1436c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        const char* datestr_2 = data[i++];
1437c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#ifdef DTIFMTTS_DEBUG
1438c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        sprintf(mesg, "original date: %s - %s\n", datestr, datestr_2);
1439c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        PRINTMESG(mesg)
1440c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#endif
1441c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        UDate date = ref.parse(ctou(datestr), ec);
1442c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("parse", ec)) return;
1443c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        UDate date_2 = ref.parse(ctou(datestr_2), ec);
1444c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("parse", ec)) return;
1445c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        DateInterval dtitv(date, date_2);
1446c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1447c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        for ( uint32_t skeletonIndex = 0;
1448c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru              skeletonIndex < ARRAY_SIZE(skeleton);
1449c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru              ++skeletonIndex ) {
1450c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            const UnicodeString& oneSkeleton = skeleton[skeletonIndex];
1451c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            DateIntervalFormat* dtitvfmt = DateIntervalFormat::createInstance(oneSkeleton, loc, ec);
1452c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            if (!assertSuccess("createInstance(skeleton)", ec)) return;
1453c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            /*
1454c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            // reset the calendar to be Gregorian calendar for "th"
1455c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            if ( uprv_strcmp(locName, "th") == 0 ) {
1456c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru                GregorianCalendar* gregCal = new GregorianCalendar(loc, ec);
1457c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru                if (!assertSuccess("GregorianCalendar()", ec)) return;
1458c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru                const DateFormat* dformat = dtitvfmt->getDateFormat();
1459c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru                DateFormat* newOne = (DateFormat*)dformat->clone();
1460c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru                newOne->adoptCalendar(gregCal);
1461c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru                //dtitvfmt->adoptDateFormat(newOne, ec);
1462c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru                dtitvfmt->setDateFormat(*newOne, ec);
1463c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru                delete newOne;
1464c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru                if (!assertSuccess("adoptDateFormat()", ec)) return;
1465c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            }
1466c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            */
1467c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            FieldPosition pos=0;
1468c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            dtitvfmt->format(&dtitv, str.remove(), pos, ec);
1469c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            if (!assertSuccess("format", ec)) return;
1470c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#ifdef DTIFMTTS_DEBUG
1471c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            oneSkeleton.extract(0,  oneSkeleton.length(), result, "UTF-8");
1472c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            sprintf(mesg, "interval by skeleton: %s\n", result);
1473c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            PRINTMESG(mesg)
1474c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            str.extract(0,  str.length(), result, "UTF-8");
1475c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            sprintf(mesg, "interval date: %s\n", result);
1476c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            PRINTMESG(mesg)
1477c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#endif
1478c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            delete dtitvfmt;
1479c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        }
1480c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1481c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        // test user created DateIntervalInfo
1482c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        ec = U_ZERO_ERROR;
1483c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        DateIntervalInfo* dtitvinf = new DateIntervalInfo(ec);
1484c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dtitvinf->setFallbackIntervalPattern("{0} --- {1}", ec);
1485c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dtitvinf->setIntervalPattern(UDAT_YEAR_ABBR_MONTH_DAY, UCAL_MONTH, "yyyy MMM d - MMM y",ec);
1486c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("DateIntervalInfo::setIntervalPattern", ec)) return;
1487c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dtitvinf->setIntervalPattern(UDAT_YEAR_ABBR_MONTH_DAY, UCAL_HOUR_OF_DAY, "yyyy MMM d HH:mm - HH:mm", ec);
1488c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("DateIntervalInfo::setIntervalPattern", ec)) return;
1489c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        DateIntervalFormat* dtitvfmt = DateIntervalFormat::createInstance(UDAT_YEAR_ABBR_MONTH_DAY, loc, *dtitvinf, ec);
1490c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        delete dtitvinf;
1491c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if (!assertSuccess("createInstance(skeleton,dtitvinf)", ec)) return;
1492c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        FieldPosition pos=0;
1493c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        dtitvfmt->format(&dtitv, str.remove(), pos, ec);
1494c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        if ( uprv_strcmp(locName, "th") ) {
1495c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            if (!assertSuccess("format", ec)) return;
1496c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#ifdef DTIFMTTS_DEBUG
1497c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            PRINTMESG("interval format using user defined DateIntervalInfo\n");
1498c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            str.extract(0,  str.length(), result, "UTF-8");
1499c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            sprintf(mesg, "interval date: %s\n", result);
1500c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            PRINTMESG(mesg)
1501c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#endif
1502c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        } else {
1503c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            // for "th", the default calendar is Budhist,
1504c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            // not Gregorian.
1505c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            assertTrue("Default calendar for \"th\" is Budhist", ec == U_ILLEGAL_ARGUMENT_ERROR);
1506c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru            ec = U_ZERO_ERROR;
1507c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        }
1508c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru        delete dtitvfmt;
1509c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru    }
1510c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru}
1511c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru
1512c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru#endif /* #if !UCONFIG_NO_FORMATTING */
1513