17935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/*****************************************************************************************
27935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *
37935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *   Copyright (C) 1996-2014, International Business Machines
47935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *   Corporation and others.  All Rights Reserved.
57935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert **/
67935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
77935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/**
87935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Port From:   JDK 1.4b1 : java.text.Format.IntlTestDateFormatSymbols
97935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Source File: java/text/format/IntlTestDateFormatSymbols.java
107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert **/
117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/*
137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    @test 1.4 98/03/06
147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    @summary test International Date Format Symbols
157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert*/
167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpackage com.ibm.icu.dev.test.format;
187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.util.Locale;
207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.text.DateFormatSymbols;
227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.util.Calendar;
237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.util.ULocale;
247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpublic class IntlTestDateFormatSymbols extends com.ibm.icu.dev.test.TestFmwk
267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert{
277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public static void main(String[] args) throws Exception {
287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        new IntlTestDateFormatSymbols().run(args);
297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    // Test getMonths
327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public void TestGetMonths()
337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    {
347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] month;
357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DateFormatSymbols symbol;
367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        symbol=new DateFormatSymbols(Locale.getDefault());
387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        month=symbol.getMonths();
407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        int cnt = month.length;
417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("size = " + cnt);
437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        for (int i=0; i<cnt; ++i)
457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        {
467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            logln(month[i]);
477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public void TestGetMonths2()
517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    {
527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DateFormatSymbols symbol;
537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        symbol=new DateFormatSymbols(Locale.getDefault());
547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        int[] context = {DateFormatSymbols.STANDALONE, DateFormatSymbols.FORMAT};
567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        int[] width = {DateFormatSymbols.WIDE, DateFormatSymbols.ABBREVIATED, DateFormatSymbols.NARROW};
577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        for (int i = 0; i < context.length; i++) {
597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for (int j = 0; j < width.length; j++) {
607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                String[] month =symbol.getMonths(context[i],width[j]);
617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                int cnt = month.length;
627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                logln("size = " + cnt);
647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                for (int k = 0; k < month.length; k++) {
667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    logln(month[k]);
677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public void TestGetWeekdays2(){
737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DateFormatSymbols symbol;
747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        symbol=new DateFormatSymbols(Locale.getDefault());
757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        int[] context = {DateFormatSymbols.STANDALONE, DateFormatSymbols.FORMAT};
777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        int[] width = {DateFormatSymbols.WIDE, DateFormatSymbols.ABBREVIATED, DateFormatSymbols.NARROW};
787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        for (int i = 0; i < context.length; i++) {
807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for (int j = 0; j < width.length; j++) {
817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                String[] wd =symbol.getWeekdays(context[i],width[j]);
827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                int cnt = wd.length;
837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
847935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                logln("size = " + cnt);
857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                for (int k = 0; k < wd.length; k++) {
877935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    logln(wd[k]);
887935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
897935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
907935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
917935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
927935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
937935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
947935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public void TestGetEraNames(){
957935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DateFormatSymbols symbol;
967935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        symbol=new DateFormatSymbols(Locale.getDefault());
977935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        String[] s = symbol.getEraNames();
987935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        for (int i = 0; i < s.length; i++) {
997935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            logln(s[i]);
1007935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1017935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1027935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
1037935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1047935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    private boolean UnicodeStringsArePrefixes(String[] prefixArray, String[] baseArray){
1057935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if (prefixArray.length != baseArray.length) {
1067935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return false;
1077935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1087935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        int i;
1097935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        for (i = 0; i < baseArray.length; i++) {
1107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            if (!baseArray[i].startsWith(prefixArray[i])) {
1117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                errln("ERROR: Mismatch example, index " + i + ": expect prefix \"" + prefixArray[i] + "\" of base \"" + baseArray[i] + "\".");
1127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            	return false;
1137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
1147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        return true;
1167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
1177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    // Test the API of DateFormatSymbols; primarily a simple get/set set.
1207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public void TestSymbols()
1217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    {
1227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DateFormatSymbols fr = new DateFormatSymbols(Locale.FRENCH);
1237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DateFormatSymbols fr2 = new DateFormatSymbols(Locale.FRENCH);
1247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DateFormatSymbols en = new DateFormatSymbols(Locale.ENGLISH);
1267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DateFormatSymbols zhChiCal = new DateFormatSymbols(new ULocale("zh@calendar=chinese"));
1287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if(en.equals(fr)) {
1307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: English DateFormatSymbols equal to French");
1317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // just do some VERY basic tests to make sure that get/set work
1347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        long count;
1367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] eras = en.getEras();
1377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setEras(eras);
1387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] eras1 = fr.getEras();
1397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = eras.length;
1407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != eras1.length) {
1417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setEras() failed (different size array)");
1427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
1447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
1457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! eras[i].equals(eras1[i])) {
1467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setEras() failed (different string values)");
1477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
1487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
1497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] months = en.getMonths();
1537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setMonths(months);
1547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] months1 = fr.getMonths();
1557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = months.length;
1567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != months1.length) {
1577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setMonths() failed (different size array)");
1587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
1607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
1617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! months[i].equals(months1[i])) {
1627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setMonths() failed (different string values)");
1637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
1647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
1657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] shortMonths = en.getShortMonths();
1687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setShortMonths(shortMonths);
1697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] shortMonths1 = fr.getShortMonths();
1707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = shortMonths.length;
1717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != shortMonths1.length) {
1727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setShortMonths() failed (different size array)");
1737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
1757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
1767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! shortMonths[i].equals(shortMonths1[i])) {
1777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setShortMonths() failed (different string values)");
1787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
1797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
1807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] wideMonths = en.getMonths(DateFormatSymbols.FORMAT,DateFormatSymbols.WIDE);
1837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr2.setMonths(wideMonths,DateFormatSymbols.FORMAT,DateFormatSymbols.WIDE);
1847935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] wideMonths1 = fr2.getMonths(DateFormatSymbols.FORMAT,DateFormatSymbols.WIDE);
1857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = wideMonths.length;
1867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != wideMonths1.length) {
1877935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setMonths(FORMAT,WIDE) failed (different size array)");
1887935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1897935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
1907935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
1917935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! wideMonths[i].equals(wideMonths1[i])) {
1927935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setMonths(FORMAT,WIDE) failed (different string values)");
1937935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
1947935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
1957935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1967935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1977935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] abbrMonths = en.getMonths(DateFormatSymbols.FORMAT,DateFormatSymbols.ABBREVIATED);
1987935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr2.setMonths(abbrMonths,DateFormatSymbols.FORMAT,DateFormatSymbols.ABBREVIATED);
1997935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] abbrMonths1 = fr2.getMonths(DateFormatSymbols.FORMAT,DateFormatSymbols.ABBREVIATED);
2007935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = abbrMonths.length;
2017935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != abbrMonths1.length) {
2027935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setMonths(FORMAT,ABBREVIATED) failed (different size array)");
2037935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2047935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
2057935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
2067935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! abbrMonths[i].equals(abbrMonths1[i])) {
2077935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setMonths(FORMAT,ABBREVIATED) failed (different string values)");
2087935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
2097935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
2107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
2127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] narrowMonths = en.getMonths(DateFormatSymbols.FORMAT,DateFormatSymbols.NARROW);
2137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setMonths(narrowMonths,DateFormatSymbols.FORMAT,DateFormatSymbols.NARROW);
2147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] narrowMonths1 = fr.getMonths(DateFormatSymbols.FORMAT,DateFormatSymbols.NARROW);
2157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = narrowMonths.length;
2167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != narrowMonths1.length) {
2177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setMonths(FORMAT,NARROW) failed (different size array)");
2187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
2207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
2217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! narrowMonths[i].equals(narrowMonths1[i])) {
2227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setMonths(FORMAT,NARROW) failed (different string values)");
2237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
2247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
2257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
2277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneMonths = en.getMonths(DateFormatSymbols.STANDALONE,DateFormatSymbols.WIDE);
2287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setMonths(standaloneMonths,DateFormatSymbols.STANDALONE,DateFormatSymbols.WIDE);
2297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneMonths1 = fr.getMonths(DateFormatSymbols.STANDALONE,DateFormatSymbols.WIDE);
2307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = standaloneMonths.length;
2317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != standaloneMonths1.length) {
2327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setMonths(STANDALONE,WIDE) failed (different size array)");
2337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
2357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
2367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! standaloneMonths[i].equals(standaloneMonths1[i])) {
2377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setMonths(STANDALONE,WIDE) failed (different string values)");
2387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
2397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
2407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
2427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneShortMonths = en.getMonths(DateFormatSymbols.STANDALONE,DateFormatSymbols.ABBREVIATED);
2437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setMonths(standaloneShortMonths,DateFormatSymbols.STANDALONE,DateFormatSymbols.ABBREVIATED);
2447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneShortMonths1 = fr.getMonths(DateFormatSymbols.STANDALONE,DateFormatSymbols.ABBREVIATED);
2457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = standaloneShortMonths.length;
2467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != standaloneShortMonths1.length) {
2477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setMonths(STANDALONE,ABBREVIATED) failed (different size array)");
2487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
2507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
2517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! standaloneShortMonths[i].equals(standaloneShortMonths1[i])) {
2527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setMonths(STANDALONE,ABBREVIATED) failed (different string values)");
2537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
2547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
2557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
2577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneNarrowMonths = en.getMonths(DateFormatSymbols.STANDALONE,DateFormatSymbols.NARROW);
2587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setMonths(standaloneNarrowMonths,DateFormatSymbols.STANDALONE,DateFormatSymbols.NARROW);
2597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneNarrowMonths1 = fr.getMonths(DateFormatSymbols.STANDALONE,DateFormatSymbols.NARROW);
2607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = standaloneNarrowMonths.length;
2617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != standaloneNarrowMonths1.length) {
2627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setMonths(STANDALONE,NARROW) failed (different size array)");
2637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
2657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
2667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! standaloneNarrowMonths[i].equals(standaloneNarrowMonths1[i])) {
2677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setMonths(STANDALONE,NARROW) failed (different string values)");
2687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
2697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
2707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
2727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] weekdays = en.getWeekdays();
2737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setWeekdays(weekdays);
2747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] weekdays1 = fr.getWeekdays();
2757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = weekdays.length;
2767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != weekdays1.length) {
2777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setWeekdays() failed (different size array)");
2787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
2807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
2817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! weekdays[i].equals(weekdays1[i])) {
2827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setWeekdays() failed (different string values)");
2837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
2847935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
2857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
2877935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] shortWeekdays = en.getShortWeekdays();
2887935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setShortWeekdays(shortWeekdays);
2897935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] shortWeekdays1 = fr.getShortWeekdays();
2907935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = shortWeekdays.length;
2917935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != shortWeekdays1.length) {
2927935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setShortWeekdays() failed (different size array)");
2937935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2947935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
2957935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
2967935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! shortWeekdays[i].equals(shortWeekdays1[i])) {
2977935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setShortWeekdays() failed (different string values)");
2987935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
2997935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
3007935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3017935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
3027935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] wideWeekdays = en.getWeekdays(DateFormatSymbols.FORMAT,DateFormatSymbols.WIDE);
3037935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr2.setWeekdays(wideWeekdays,DateFormatSymbols.FORMAT,DateFormatSymbols.WIDE);
3047935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] wideWeekdays1 = fr2.getWeekdays(DateFormatSymbols.FORMAT,DateFormatSymbols.WIDE);
3057935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = wideWeekdays.length;
3067935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != wideWeekdays1.length) {
3077935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setWeekdays(FORMAT,WIDE) failed (different size array)");
3087935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3097935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
3107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
3117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! wideWeekdays[i].equals(wideWeekdays1[i])) {
3127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setWeekdays(FORMAT,WIDE) failed (different string values)");
3137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
3147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
3157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
3177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] abbrWeekdays = en.getWeekdays(DateFormatSymbols.FORMAT,DateFormatSymbols.ABBREVIATED);
3187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] shorterWeekdays = en.getWeekdays(DateFormatSymbols.FORMAT,DateFormatSymbols.SHORT);
3197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if ( !UnicodeStringsArePrefixes(shorterWeekdays, abbrWeekdays) ) {
3207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: English format short weekday names don't match prefixes of format abbreviated names");
3217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr2.setWeekdays(abbrWeekdays,DateFormatSymbols.FORMAT,DateFormatSymbols.ABBREVIATED);
3237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] abbrWeekdays1 = fr2.getWeekdays(DateFormatSymbols.FORMAT,DateFormatSymbols.ABBREVIATED);
3247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = abbrWeekdays.length;
3257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != abbrWeekdays1.length) {
3267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setWeekdays(FORMAT,ABBREVIATED) failed (different size array)");
3277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
3297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
3307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! abbrWeekdays[i].equals(abbrWeekdays1[i])) {
3317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setWeekdays(FORMAT,ABBREVIATED) failed (different string values)");
3327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
3337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
3347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
3367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] narrowWeekdays = en.getWeekdays(DateFormatSymbols.FORMAT,DateFormatSymbols.NARROW);
3377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setWeekdays(narrowWeekdays,DateFormatSymbols.FORMAT,DateFormatSymbols.NARROW);
3387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] narrowWeekdays1 = fr.getWeekdays(DateFormatSymbols.FORMAT,DateFormatSymbols.NARROW);
3397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = narrowWeekdays.length;
3407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != narrowWeekdays1.length) {
3417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setWeekdays(FORMAT,NARROW) failed (different size array)");
3427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
3447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
3457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! narrowWeekdays[i].equals(narrowWeekdays1[i])) {
3467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setWeekdays(FORMAT,NARROW) failed (different string values)");
3477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
3487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
3497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
3517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneWeekdays = en.getWeekdays(DateFormatSymbols.STANDALONE,DateFormatSymbols.WIDE);
3527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setWeekdays(standaloneWeekdays,DateFormatSymbols.STANDALONE,DateFormatSymbols.WIDE);
3537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneWeekdays1 = fr.getWeekdays(DateFormatSymbols.STANDALONE,DateFormatSymbols.WIDE);
3547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = standaloneWeekdays.length;
3557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != standaloneWeekdays1.length) {
3567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setWeekdays(STANDALONE,WIDE) failed (different size array)");
3577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
3597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
3607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! standaloneWeekdays[i].equals(standaloneWeekdays1[i])) {
3617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setWeekdays(STANDALONE,WIDE) failed (different string values)");
3627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
3637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
3647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
3667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneShortWeekdays = en.getWeekdays(DateFormatSymbols.STANDALONE,DateFormatSymbols.ABBREVIATED);
3677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneShorterWeekdays = en.getWeekdays(DateFormatSymbols.STANDALONE,DateFormatSymbols.SHORT);
3687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if ( !UnicodeStringsArePrefixes(standaloneShorterWeekdays, standaloneShortWeekdays) ) {
3697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: English standalone short weekday names don't match prefixes of standalone abbreviated names");
3707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setWeekdays(standaloneShortWeekdays,DateFormatSymbols.STANDALONE,DateFormatSymbols.ABBREVIATED);
3727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneShortWeekdays1 = fr.getWeekdays(DateFormatSymbols.STANDALONE,DateFormatSymbols.ABBREVIATED);
3737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = standaloneShortWeekdays.length;
3747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != standaloneShortWeekdays1.length) {
3757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setWeekdays(STANDALONE,ABBREVIATED) failed (different size array)");
3767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
3787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
3797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! standaloneShortWeekdays[i].equals(standaloneShortWeekdays1[i])) {
3807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setWeekdays(STANDALONE,ABBREVIATED) failed (different string values)");
3817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
3827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
3837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3847935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
3857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneNarrowWeekdays = en.getWeekdays(DateFormatSymbols.STANDALONE,DateFormatSymbols.NARROW);
3867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setWeekdays(standaloneNarrowWeekdays,DateFormatSymbols.STANDALONE,DateFormatSymbols.NARROW);
3877935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneNarrowWeekdays1 = fr.getWeekdays(DateFormatSymbols.STANDALONE,DateFormatSymbols.NARROW);
3887935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = standaloneNarrowWeekdays.length;
3897935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != standaloneNarrowWeekdays1.length) {
3907935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setWeekdays(STANDALONE,NARROW) failed (different size array)");
3917935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3927935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
3937935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
3947935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! standaloneNarrowWeekdays[i].equals(standaloneNarrowWeekdays1[i])) {
3957935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setWeekdays(STANDALONE,NARROW) failed (different string values)");
3967935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
3977935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
3987935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
3997935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
4007935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] wideQuarters = en.getQuarters(DateFormatSymbols.FORMAT,DateFormatSymbols.WIDE);
4017935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr2.setQuarters(wideQuarters,DateFormatSymbols.FORMAT,DateFormatSymbols.WIDE);
4027935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] wideQuarters1 = fr2.getQuarters(DateFormatSymbols.FORMAT,DateFormatSymbols.WIDE);
4037935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = wideQuarters.length;
4047935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != wideQuarters1.length) {
4057935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setQuarters(FORMAT, WIDE) failed (different size array)");
4067935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
4077935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
4087935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
4097935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! wideQuarters[i].equals(wideQuarters1[i])) {
4107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setQuarters(FORMAT, WIDE) failed (different string values)");
4117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
4127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
4137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
4147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
4157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] abbrQuarters = en.getQuarters(DateFormatSymbols.FORMAT,DateFormatSymbols.ABBREVIATED);
4167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr2.setQuarters(abbrQuarters,DateFormatSymbols.FORMAT,DateFormatSymbols.ABBREVIATED);
4177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] abbrQuarters1 = fr2.getQuarters(DateFormatSymbols.FORMAT,DateFormatSymbols.ABBREVIATED);
4187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = abbrQuarters.length;
4197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != abbrQuarters1.length) {
4207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setQuarters(FORMAT, ABBREVIATED) failed (different size array)");
4217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
4227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
4237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
4247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! abbrQuarters[i].equals(abbrQuarters1[i])) {
4257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setQuarters(FORMAT, ABBREVIATED) failed (different string values)");
4267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
4277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
4287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
4297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
4307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneQuarters = en.getQuarters(DateFormatSymbols.STANDALONE,DateFormatSymbols.WIDE);
4317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setQuarters(standaloneQuarters,DateFormatSymbols.STANDALONE,DateFormatSymbols.WIDE);
4327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneQuarters1 = fr.getQuarters(DateFormatSymbols.STANDALONE,DateFormatSymbols.WIDE);
4337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = standaloneQuarters.length;
4347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != standaloneQuarters1.length) {
4357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setQuarters(STANDALONE, WIDE) failed (different size array)");
4367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
4377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
4387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
4397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! standaloneQuarters[i].equals(standaloneQuarters1[i])) {
4407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setQuarters(STANDALONE, WIDE) failed (different string values)");
4417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
4427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
4437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
4447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
4457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneShortQuarters = en.getQuarters(DateFormatSymbols.STANDALONE,DateFormatSymbols.ABBREVIATED);
4467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setQuarters(standaloneShortQuarters,DateFormatSymbols.STANDALONE,DateFormatSymbols.ABBREVIATED);
4477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] standaloneShortQuarters1 = fr.getQuarters(DateFormatSymbols.STANDALONE,DateFormatSymbols.ABBREVIATED);
4487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = standaloneShortQuarters.length;
4497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != standaloneShortQuarters1.length) {
4507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setQuarters(STANDALONE, ABBREVIATED) failed (different size array)");
4517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
4527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
4537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
4547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! standaloneShortQuarters[i].equals(standaloneShortQuarters1[i])) {
4557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setQuarters(STANDALONE, ABBREVIATED) failed (different string values)");
4567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
4577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
4587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
4597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
4607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] ampms = en.getAmPmStrings();
4617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setAmPmStrings(ampms);
4627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] ampms1 = fr.getAmPmStrings();
4637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        count = ampms.length;
4647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( count != ampms1.length) {
4657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setAmPmStrings() failed (different size array)");
4667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
4677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        else {
4687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int i = 0; i < count; i++) {
4697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if(! ampms[i].equals(ampms1[i])) {
4707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setAmPmStrings() failed (different string values)");
4717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
4727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
4737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
4747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
4757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        long rowCount = 0, columnCount = 0;
4767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[][] strings = en.getZoneStrings();
4777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setZoneStrings(strings);
4787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[][] strings1 = fr.getZoneStrings();
4797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        rowCount = strings.length;
4807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        for(int i = 0; i < rowCount; i++) {
4817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            columnCount = strings[i].length;
4827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            for(int j = 0; j < columnCount; j++) {
4837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if( strings[i][j] != strings1[i][j] ) {
4847935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("ERROR: setZoneStrings() failed");
4857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
4867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
4877935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
4887935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
4897935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//        final String pattern = DateFormatSymbols.getPatternChars();
4907935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
4917935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        String localPattern; // pat1, pat2; //The variable is never used
4927935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        localPattern = en.getLocalPatternChars();
4937935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setLocalPatternChars(localPattern);
4947935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if(! en.getLocalPatternChars().equals(fr.getLocalPatternChars())) {
4957935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setLocalPatternChars() failed");
4967935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
4977935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
4987935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
4997935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        //DateFormatSymbols foo = new DateFormatSymbols(); //The variable is never used
5007935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
5017935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        en = (DateFormatSymbols) fr.clone();
5027935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
5037935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if(! en.equals(fr)) {
5047935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: Clone failed");
5057935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
5067935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
5077935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] shortYearNames = zhChiCal.getYearNames(DateFormatSymbols.FORMAT, DateFormatSymbols.ABBREVIATED);
5087935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] narrowYearNames = zhChiCal.getYearNames(DateFormatSymbols.STANDALONE, DateFormatSymbols.NARROW);
5097935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if (shortYearNames == null || shortYearNames.length != 60 ||
5107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                !shortYearNames[0].equals("\u7532\u5B50") || !shortYearNames[59].equals("\u7678\u4EA5")) {
5117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: invalid FORMAT/ABBREVIATED year names from zh@calendar=chinese");
5127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
5137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if (narrowYearNames == null || narrowYearNames.length != 60 ||
5147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                !narrowYearNames[0].equals("\u7532\u5B50") || !narrowYearNames[59].equals("\u7678\u4EA5")) {
5157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: invalid STANDALONE/NARROW year names from zh@calendar=chinese");
5167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
5177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] enGregoYearNames = en.getYearNames(DateFormatSymbols.FORMAT, DateFormatSymbols.ABBREVIATED);
5187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if (enGregoYearNames != null) {
5197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: yearNames not null for en");
5207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
5217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
5227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] shortZodiacNames = zhChiCal.getZodiacNames(DateFormatSymbols.FORMAT, DateFormatSymbols.ABBREVIATED);
5237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if (shortZodiacNames == null || shortZodiacNames.length != 12 ||
5247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                !shortZodiacNames[0].equals("\u9F20") || !shortZodiacNames[11].equals("\u732A")) {
5257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: invalid FORMAT/ABBREVIATED zodiac names from zh@calendar=chinese");
5267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
5277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
5287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] newZodiacNames = {"Rat","Ox","Tiger","Rabbit","Dragon","Snake","Horse","Goat","Monkey","Rooster","Dog","Pig"};
5297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        zhChiCal.setZodiacNames(newZodiacNames, DateFormatSymbols.FORMAT, DateFormatSymbols.ABBREVIATED);
5307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final String[] testZodiacNames = zhChiCal.getZodiacNames(DateFormatSymbols.FORMAT, DateFormatSymbols.ABBREVIATED);
5317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if (testZodiacNames == null || testZodiacNames.length != 12 ||
5327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                !testZodiacNames[0].equals("Rat") || !testZodiacNames[11].equals("Pig")) {
5337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: setZodiacNames then getZodiacNames not working for zh@calendar=chinese");
5347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
5357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
5367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        String leapMonthPatternFmtAbbrev = zhChiCal.getLeapMonthPattern(DateFormatSymbols.FORMAT, DateFormatSymbols.ABBREVIATED);
5377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if (leapMonthPatternFmtAbbrev == null || !leapMonthPatternFmtAbbrev.equals("\u95F0{0}")) {
5387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: invalid FORMAT/ABBREVIATED leapMonthPattern from zh@calendar=chinese");
5397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
5407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
5417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
5427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public void TestConstructorWithCalendar() {
5437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        ULocale[] TestLocales = {
5447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            new ULocale("en_US@calendar=gregorian"),
5457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            new ULocale("ja_JP@calendar=japanese"),
5467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            new ULocale("th_TH@calendar=buddhist"),
5477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            new ULocale("zh_TW@calendar=roc"),
5487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            new ULocale("ar_IR@calendar=persian"),
5497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            new ULocale("ar_EG@calendar=islamic"),
5507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            new ULocale("he_IL@calendar=hebrew"),
5517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            new ULocale("zh_CN@calendar=chinese"),
5527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            new ULocale("hi_IN@calendar=indian"),
5537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            new ULocale("ar_EG@calendar=coptic"),
5547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            new ULocale("am_ET@calendar=ethiopic"),
5557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        };
5567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
5577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        int i;
5587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
5597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // calendars
5607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        Calendar[] calendars = new Calendar[TestLocales.length];
5617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        for (i = 0; i < TestLocales.length; i++) {
5627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            calendars[i] = Calendar.getInstance(TestLocales[i]);
5637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
5647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
5657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // Creates an instance from a base locale + calendar
5667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DateFormatSymbols[] symbols = new DateFormatSymbols[TestLocales.length];
5677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        for (i = 0; i < TestLocales.length; i++) {
5687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            symbols[i] = new DateFormatSymbols(calendars[i], new ULocale(TestLocales[i].getBaseName()));
5697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
5707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
5717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // Compare an instance created from a base locale + calendar
5727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // with an instance created from its base locale + calendar class
5737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        for (i = 0; i < TestLocales.length; i++) {
5747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            DateFormatSymbols dfs = new DateFormatSymbols(calendars[i].getClass(), new ULocale(TestLocales[i].getBaseName()));
5757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            if (!dfs.equals(symbols[i])) {
5767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                errln("FAIL: DateFormatSymbols created from a base locale and calendar instance"
5777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                        + " is different from one created from the same base locale and calendar class - "
5787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                        + TestLocales[i]);
5797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
5807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
5817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
5827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
5837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert}
584