10596faeddefbf198de137d5e893708495ab1584cFredrik Roubert// © 2016 and later: Unicode, Inc. and others.
264339d36f8bd4db5025fe2988eda22b491a9219cFredrik Roubert// License & terms of use: http://www.unicode.org/copyright.html
3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/********************************************************************
48393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius * Copyright (c) 1997-2013, International Business Machines
5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Corporation and others. All Rights Reserved.
6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ********************************************************************/
7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/utypes.h"
9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#if !UCONFIG_NO_FORMATTING
11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "tsdtfmsy.h"
13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/dtfmtsym.h"
15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//--------------------------------------------------------------------
18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru// Time bomb - allows temporary behavior that expires at a given
19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//             release
20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//--------------------------------------------------------------------
21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid IntlTestDateFormatSymbols::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ )
23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if (exec) logln("TestSuite DateFormatSymbols");
25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    switch (index) {
26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        TESTCASE(0,TestSymbols);
27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        TESTCASE(1,TestGetMonths);
28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        TESTCASE(2,TestGetMonths2);
29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        TESTCASE(3,TestGetWeekdays2);
30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        TESTCASE(4,TestGetEraNames);
318393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        TESTCASE(5,TestGetSetSpecificItems);
32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        default: name = ""; break;
33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/**
37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Test getMonths.
38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */
39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid IntlTestDateFormatSymbols::TestGetMonths()
40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UErrorCode  status = U_ZERO_ERROR;
42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    int32_t cnt;
43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString* month;
44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DateFormatSymbols *symbol;
45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    symbol=new DateFormatSymbols(Locale::getDefault(), status);
47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    month=symbol->getMonths(cnt);
49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    logln((UnicodeString)"size = " + cnt);
51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    for (int32_t i=0; i<cnt; ++i)
53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {
54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        logln(month[i]);
55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    delete symbol;
58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid IntlTestDateFormatSymbols::TestGetMonths2()
61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UErrorCode  status = U_ZERO_ERROR;
63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DateFormatSymbols *symbol;
64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    symbol=new DateFormatSymbols(Locale::getDefault(), status);
66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DateFormatSymbols::DtContextType context[] = {DateFormatSymbols::STANDALONE, DateFormatSymbols::FORMAT};
68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DateFormatSymbols::DtWidthType width[] = {DateFormatSymbols::WIDE, DateFormatSymbols::ABBREVIATED, DateFormatSymbols::NARROW};
69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    for (int32_t i = 0; i < 2; i++) {
71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        for (int32_t j = 0; j < 3; j++) {
72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru            int32_t cnt;
73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru            const UnicodeString * month = symbol->getMonths(cnt,context[i],width[j]);
74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
75ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru            logln((UnicodeString)"size = " + cnt);
76ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru            for (int32_t k = 0; k < cnt; k++) {
78ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru                logln(month[k]);
79ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru            }
80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        }
81ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
82ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    delete symbol;
83ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
84ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
85ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid IntlTestDateFormatSymbols::TestGetWeekdays2()
86ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
87ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UErrorCode  status = U_ZERO_ERROR;
88ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DateFormatSymbols *symbol;
89ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
90ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    symbol=new DateFormatSymbols(Locale::getDefault(), status);
91ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
92ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DateFormatSymbols::DtContextType context[] = {DateFormatSymbols::STANDALONE, DateFormatSymbols::FORMAT};
93ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DateFormatSymbols::DtWidthType width[] = {DateFormatSymbols::WIDE, DateFormatSymbols::ABBREVIATED, DateFormatSymbols::NARROW};
94ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
95ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    for (int32_t i = 0; i < 2; i++) {
96ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        for (int32_t j = 0; j < 3; j++) {
97ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru            int32_t cnt;
98ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru            const UnicodeString * wd = symbol->getWeekdays(cnt,context[i],width[j]);
99ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
100ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru            logln((UnicodeString)"size = " + cnt);
101ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
102ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru            for (int32_t k = 0; k < cnt; k++) {
103ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru                logln(wd[k]);
104ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru            }
105ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        }
106ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
107ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    delete symbol;
108ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
109ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
110ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
111ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid IntlTestDateFormatSymbols::TestGetEraNames()
112ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
113ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UErrorCode  status = U_ZERO_ERROR;
114ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    int32_t cnt;
115ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString* name;
116ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DateFormatSymbols *symbol;
117ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
118ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    symbol=new DateFormatSymbols(Locale::getDefault(), status);
119ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
120ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    name=symbol->getEraNames(cnt);
121ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
122ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    logln((UnicodeString)"size = " + cnt);
123ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
124ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    for (int32_t i=0; i<cnt; ++i)
125ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {
126ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        logln(name[i]);
127ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
128ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
129ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    delete symbol;
130ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
131ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
1328393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig CorneliusUBool IntlTestDateFormatSymbols::UnicodeStringsArePrefixes(int32_t count, int32_t prefixLen, const UnicodeString *prefixArray, const UnicodeString *baseArray)
1338393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius{
1348393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    int32_t i;
1358393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    for (i = 0; i < count; i++) {
1368393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        if (baseArray[i].compare(0, prefixLen, prefixArray[i]) != 0) {
1378393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            errln("ERROR: Mismatch example: expect prefix \"" + prefixArray[i] + "\" of base \"" + baseArray[i] + "\".");
1388393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius            return FALSE;
1398393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        }
1408393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    }
1418393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    return TRUE;
1428393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius}
1438393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius
1448393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Corneliusvoid IntlTestDateFormatSymbols::TestGetSetSpecificItems()
1458393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius{
1468393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    UErrorCode  status = U_ZERO_ERROR;
1478393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    DateFormatSymbols *symbol=new DateFormatSymbols(Locale::getEnglish(), status);
1488393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    if(U_FAILURE(status)) {
1498393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        dataerrln("ERROR: Couldn't create English DateFormatSymbols " + (UnicodeString)u_errorName(status));
1508393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        return;
1518393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    }
1528393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    int32_t cntFmtAbbrev, cntFmtShort, cntStdAloneShort;
1538393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    const UnicodeString * wdFmtAbbrev     = symbol->getWeekdays(cntFmtAbbrev,DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED);
1548393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    const UnicodeString * wdFmtShort      = symbol->getWeekdays(cntFmtShort,DateFormatSymbols::FORMAT,DateFormatSymbols::SHORT);
1558393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    const UnicodeString * wdStdAloneShort = symbol->getWeekdays(cntStdAloneShort,DateFormatSymbols::STANDALONE,DateFormatSymbols::SHORT);
1568393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    // Expect that English short names are prefixes of abbreviated names
1578393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    if (cntFmtShort != cntFmtAbbrev || !UnicodeStringsArePrefixes(cntFmtAbbrev, 2, wdFmtShort, wdFmtAbbrev)) {
1588393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        errln("ERROR: English format short weekday names don't match prefixes of format abbreviated names");
1598393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    }
1608393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    if (cntStdAloneShort != cntFmtAbbrev || !UnicodeStringsArePrefixes(cntFmtAbbrev, 2, wdStdAloneShort, wdFmtAbbrev)) {
1618393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius        errln("ERROR: English standalone short weekday names don't match prefixes of format abbreviated names");
1628393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    }
1638393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius
1648393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    delete symbol;
1658393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius}
1668393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius
167ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/**
168ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Test the API of DateFormatSymbols; primarily a simple get/set set.
169ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */
170ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid IntlTestDateFormatSymbols::TestSymbols(/* char *par */)
171ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
172ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UErrorCode status = U_ZERO_ERROR;
173ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
174ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DateFormatSymbols fr(Locale::getFrench(), status);
175ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if(U_FAILURE(status)) {
176103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius        dataerrln("ERROR: Couldn't create French DateFormatSymbols " + (UnicodeString)u_errorName(status));
17785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho        return;
178ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
179ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
180ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    status = U_ZERO_ERROR;
181ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DateFormatSymbols fr2(Locale::getFrench(), status);
182ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if(U_FAILURE(status)) {
18385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho        errcheckln(status, "ERROR: Couldn't create French DateFormatSymbols " + (UnicodeString)u_errorName(status));
18485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho        return;
185ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
186ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
187ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    status = U_ZERO_ERROR;
188ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DateFormatSymbols en(Locale::getEnglish(), status);
189ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if(U_FAILURE(status)) {
19085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho        errcheckln(status, "ERROR: Couldn't create English DateFormatSymbols " + (UnicodeString)u_errorName(status));
19185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho        return;
192ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
193ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
194ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if(en == fr || ! (en != fr) ) {
195ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: English DateFormatSymbols equal to French");
196ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
197ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
198ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    // just do some VERY basic tests to make sure that get/set work
199ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
200ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    int32_t count = 0;
201ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *eras = en.getEras(count);
202ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if(count == 0) {
20385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho      errln("ERROR: 0 english eras.. exiting..\n");
204ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      return;
205ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
20685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    int32_t eraNamesCount = 0;
20785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    const UnicodeString *eraNames = en.getEraNames(eraNamesCount);
20885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    if(eraNamesCount == 0) {
20985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho      errln("ERROR: 0 english eraNames\n");
21085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    } else if ( eraNames[0].length() <= eras[0].length() ) {
21185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho      // At least for English we know a wide eraName should be longer than an abbrev era
21285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho      errln("ERROR: english eraNames[0] not longer than eras[0]\n");
21385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    }
21485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    int32_t narrowErasCount = 0;
21585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    const UnicodeString *narrowEras = en.getNarrowEras(narrowErasCount);
21685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    if(narrowErasCount == 0) {
21785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho      errln("ERROR: 0 english narrowEras\n");
21885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    } else if ( narrowEras[0].length() >= eras[0].length() ) {
21985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho      // At least for English we know a narrowEra should be shorter than an abbrev era
22085bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho      errln("ERROR: english narrowEras[0] not shorter than eras[0]\n");
22185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho    }
222ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
223ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setEras(eras, count);
224ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getEras(count) != *fr.getEras(count)) {
225ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      errln("ERROR: setEras() failed");
226ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
227ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
228ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *months = en.getMonths(count);
229ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setMonths(months, count);
230ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getMonths(count) != *fr.getMonths(count)) {
231ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setMonths() failed");
232ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
233ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
234ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *shortMonths = en.getShortMonths(count);
235ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setShortMonths(shortMonths, count);
236ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getShortMonths(count) != *fr.getShortMonths(count)) {
237ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setShortMonths() failed");
238ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
239ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
240ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *wideMonths = en.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE);
241ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr2.setMonths(wideMonths, count, DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE);
242ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE) !=
243ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr2.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE )) {
244ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setMonths(FORMAT,WIDE) failed");
245ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
246ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
247ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *abbrMonths = en.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED);
248ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr2.setMonths(abbrMonths, count, DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED);
249ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED) !=
250ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr2.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED )) {
251ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setMonths(FORMAT,ABBREVIATED) failed");
252ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
253ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
254ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *narrowMonths = en.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW);
255ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setMonths(narrowMonths, count, DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW);
256ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW) !=
257ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW )) {
258ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setMonths(FORMAT,NARROW) failed");
259ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
260ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
261ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *standaloneWideMonths = en.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE);
262ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setMonths(standaloneWideMonths, count, DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE);
263ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE) !=
264ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE )) {
265ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setMonths(STANDALONE,WIDE) failed");
266ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
267ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
268ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *standaloneShortMonths = en.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED);
269ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setMonths(standaloneShortMonths, count, DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED);
270ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED) !=
271ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED )) {
272ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setMonths(STANDALONE,ABBREVIATED) failed");
273ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
274ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
275ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *standaloneNarrowMonths = en.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW);
276ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setMonths(standaloneNarrowMonths, count, DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW);
277ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW) !=
278ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW )) {
279ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setMonths(STANDALONE,NARROW) failed");
280ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
281ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
282ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *weekdays = en.getWeekdays(count);
283ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setWeekdays(weekdays, count);
284ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getWeekdays(count) != *fr.getWeekdays(count)) {
285ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setWeekdays() failed");
286ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
287ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
288ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *shortWeekdays = en.getShortWeekdays(count);
289ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setShortWeekdays(shortWeekdays, count);
290ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getShortWeekdays(count) != *fr.getShortWeekdays(count)) {
291ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setShortWeekdays() failed");
292ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
293ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
294ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *wideWeekdays = en.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE);
295ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr2.setWeekdays(wideWeekdays, count, DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE);
296ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE) !=
297ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr2.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE )) {
298ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setWeekdays(FORMAT,WIDE) failed");
299ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
300ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
301ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *abbrWeekdays = en.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED);
302ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr2.setWeekdays(abbrWeekdays, count, DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED);
303ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED) !=
304ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr2.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED )) {
305ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setWeekdays(FORMAT,ABBREVIATED) failed");
306ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
307ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
308ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *narrowWeekdays = en.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW);
309ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setWeekdays(narrowWeekdays, count, DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW);
310ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW) !=
311ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW )) {
312ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setWeekdays(FORMAT,NARROW) failed");
313ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
314ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
315ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *standaloneWideWeekdays = en.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE);
316ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setWeekdays(standaloneWideWeekdays, count, DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE);
317ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE) !=
318ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE )) {
319ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setWeekdays(STANDALONE,WIDE) failed");
320ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
321ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
322ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *standaloneShortWeekdays = en.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED);
323ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setWeekdays(standaloneShortWeekdays, count, DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED);
324ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED) !=
325ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED )) {
326ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setWeekdays(STANDALONE,ABBREVIATED) failed");
327ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
328ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
329ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *standaloneNarrowWeekdays = en.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW);
330ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setWeekdays(standaloneNarrowWeekdays, count, DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW);
331ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW) !=
332ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW )) {
333ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setWeekdays(STANDALONE,NARROW) failed");
334ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
335ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
336ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *wideQuarters = en.getQuarters(count,DateFormatSymbols::FORMAT, DateFormatSymbols::WIDE);
337ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr2.setQuarters(wideQuarters, count, DateFormatSymbols::FORMAT, DateFormatSymbols::WIDE);
338ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getQuarters(count,DateFormatSymbols::FORMAT, DateFormatSymbols::WIDE) !=
339ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr2.getQuarters(count,DateFormatSymbols::FORMAT, DateFormatSymbols::WIDE )) {
340ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setQuarters(FORMAT, WIDE) failed");
341ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
342ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
343ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *abbrQuarters = en.getQuarters(count,DateFormatSymbols::FORMAT, DateFormatSymbols::ABBREVIATED);
344ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr2.setQuarters(abbrQuarters, count, DateFormatSymbols::FORMAT, DateFormatSymbols::ABBREVIATED);
345ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getQuarters(count,DateFormatSymbols::FORMAT, DateFormatSymbols::ABBREVIATED) !=
346ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr2.getQuarters(count,DateFormatSymbols::FORMAT ,DateFormatSymbols::ABBREVIATED )) {
347ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setQuarters(FORMAT, ABBREVIATED) failed");
348ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
349ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
350ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *standaloneWideQuarters = en.getQuarters(count,DateFormatSymbols::STANDALONE, DateFormatSymbols::WIDE);
351ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setQuarters(standaloneWideQuarters, count, DateFormatSymbols::STANDALONE, DateFormatSymbols::WIDE);
352ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getQuarters(count,DateFormatSymbols::STANDALONE, DateFormatSymbols::WIDE) !=
353ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr.getQuarters(count,DateFormatSymbols::STANDALONE, DateFormatSymbols::WIDE )) {
354ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setQuarters(STANDALONE, WIDE) failed");
355ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
356ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
357ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *standaloneShortQuarters = en.getQuarters(count,DateFormatSymbols::STANDALONE, DateFormatSymbols::ABBREVIATED);
358ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setQuarters(standaloneShortQuarters, count, DateFormatSymbols::STANDALONE, DateFormatSymbols::ABBREVIATED);
359ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getQuarters(count,DateFormatSymbols::STANDALONE, DateFormatSymbols::ABBREVIATED) !=
360ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        *fr.getQuarters(count,DateFormatSymbols::STANDALONE, DateFormatSymbols::ABBREVIATED )) {
361ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setQuarters(STANDALONE, ABBREVIATED) failed");
362ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
363ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
364ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString *ampms = en.getAmPmStrings(count);
365ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setAmPmStrings(ampms, count);
366ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( *en.getAmPmStrings(count) != *fr.getAmPmStrings(count)) {
367ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setAmPmStrings() failed");
368ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
369ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
370ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    int32_t rowCount = 0, columnCount = 0;
371ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString **strings = en.getZoneStrings(rowCount, columnCount);
372ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setZoneStrings(strings, rowCount, columnCount);
373ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    const UnicodeString **strings1 = fr.getZoneStrings(rowCount, columnCount);
374ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    for(int32_t i = 0; i < rowCount; i++) {
375ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru       for(int32_t j = 0; j < columnCount; j++) {
376ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru            if( strings[i][j] != strings1[i][j] ) {
377ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru                errln("ERROR: setZoneStrings() failed");
378ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru            }
379ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        }
380ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
381ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
382ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UnicodeString localPattern, pat1, pat2;
383ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    localPattern = en.getLocalPatternChars(localPattern);
384ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    fr.setLocalPatternChars(localPattern);
385ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if( en.getLocalPatternChars(pat1) != fr.getLocalPatternChars(pat2)) {
386ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: setLocalPatternChars() failed");
387ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
388ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
389ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
390ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    status = U_ZERO_ERROR;
391ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DateFormatSymbols foo(status);
392ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    DateFormatSymbols bar(foo);
393ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
394ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    en = fr;
395ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
396ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if(en != fr) {
397ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: Assignment operator failed");
398ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
399ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if(foo != bar) {
400ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: Copy Constructor failed");
401ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
402ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
403ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
404ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif /* #if !UCONFIG_NO_FORMATTING */
405