17935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/*
27935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *******************************************************************************
37935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Copyright (C) 2008-2014, International Business Machines Corporation and    *
47935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * others. All Rights Reserved.                                                *
57935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *******************************************************************************
67935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert */
77935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpackage com.ibm.icu.dev.test.localespi;
87935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
97935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.text.DecimalFormatSymbols;
107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.util.Currency;
117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.util.Locale;
127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.dev.test.TestFmwk;
147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.util.ULocale;
157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpublic class DecimalFormatSymbolsTest extends TestFmwk {
177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public static void main(String[] args) throws Exception {
187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        new DecimalFormatSymbolsTest().run(args);
197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /*
227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * Check if getInstance returns the ICU implementation.
237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public void TestGetInstance() {
257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        for (Locale loc : DecimalFormatSymbols.getAvailableLocales()) {
267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            if (TestUtil.isProblematicIBMLocale(loc)) {
277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                logln("Skipped " + loc);
287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                continue;
297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            DecimalFormatSymbols decfs = DecimalFormatSymbols.getInstance(loc);
327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            boolean isIcuImpl = (decfs instanceof com.ibm.icu.impl.jdkadapter.DecimalFormatSymbolsICU);
347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            if (TestUtil.isICUExtendedLocale(loc)) {
367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if (!isIcuImpl) {
377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("FAIL: getInstance returned JDK DecimalFormatSymbols for locale " + loc);
387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            } else {
407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if (isIcuImpl) {
417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    logln("INFO: getInstance returned ICU DecimalFormatSymbols for locale " + loc);
427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                Locale iculoc = TestUtil.toICUExtendedLocale(loc);
447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                DecimalFormatSymbols decfsIcu = DecimalFormatSymbols.getInstance(iculoc);
457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if (isIcuImpl) {
467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    if (!decfs.equals(decfsIcu)) {
477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                        errln("FAIL: getInstance returned ICU DecimalFormatSymbols for locale " + loc
487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                                + ", but different from the one for locale " + iculoc);
497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    }
507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                } else {
517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    if (!(decfsIcu instanceof com.ibm.icu.impl.jdkadapter.DecimalFormatSymbolsICU)) {
527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                        errln("FAIL: getInstance returned JDK DecimalFormatSymbols for locale " + iculoc);
537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    }
547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /*
607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * Testing the contents of DecimalFormatSymbols between ICU instance and its
617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * equivalent created via the Locale SPI framework.
627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public void TestICUEquivalent() {
647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        Locale[] TEST_LOCALES = {
657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                new Locale("en", "US"),
667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                new Locale("pt", "BR"),
677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                new Locale("ko", "KR"),
687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        };
697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        for (Locale loc : TEST_LOCALES) {
717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            Locale iculoc = TestUtil.toICUExtendedLocale(loc);
727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            DecimalFormatSymbols jdkDecfs = DecimalFormatSymbols.getInstance(iculoc);
737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            com.ibm.icu.text.DecimalFormatSymbols icuDecfs = com.ibm.icu.text.DecimalFormatSymbols.getInstance(loc);
747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            Currency jdkCur = jdkDecfs.getCurrency();
767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            com.ibm.icu.util.Currency icuCur = icuDecfs.getCurrency();
777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            if ((jdkCur != null && icuCur == null)
787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    || (jdkCur == null && icuCur != null)
797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    || !jdkCur.getCurrencyCode().equals(icuCur.getCurrencyCode())) {
807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                errln("FAIL: Different results returned by getCurrency for locale " + loc);
817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getCurrencySymbol(), icuDecfs.getCurrencySymbol(), loc, "getCurrencySymbol");
847935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getDecimalSeparator(), icuDecfs.getDecimalSeparator(), loc, "getDecimalSeparator");
857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getDigit(), icuDecfs.getDigit(), loc, "getDigit");
867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getExponentSeparator(), icuDecfs.getExponentSeparator(), loc, "getExponentSeparator");
877935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getGroupingSeparator(), icuDecfs.getGroupingSeparator(), loc, "getGroupingSeparator");
887935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getInfinity(), icuDecfs.getInfinity(), loc, "getInfinity");
897935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getInternationalCurrencySymbol(), icuDecfs.getInternationalCurrencySymbol(), loc, "getInternationalCurrencySymbol");
907935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getMinusSign(), icuDecfs.getMinusSign(), loc, "getMinusSign");
917935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getMonetaryDecimalSeparator(), icuDecfs.getMonetaryDecimalSeparator(), loc, "getMonetaryDecimalSeparator");
927935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getNaN(), icuDecfs.getNaN(), loc, "getNaN");
937935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getPatternSeparator(), icuDecfs.getPatternSeparator(), loc, "getPatternSeparator");
947935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getPercent(), icuDecfs.getPercent(), loc, "getPercent");
957935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getPerMill(), icuDecfs.getPerMill(), loc, "getPerMill");
967935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            checkEquivalence(jdkDecfs.getZeroDigit(), icuDecfs.getZeroDigit(), loc, "getZeroDigit");
977935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
987935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
997935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1007935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    private void checkEquivalence(Object jo, Object io, Locale loc, String method) {
1017935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if (!jo.equals(io)) {
1027935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("FAIL: Different results returned by " + method + " for locale "
1037935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    + loc + " (jdk=" + jo + ",icu=" + io + ")");
1047935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1057935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
1067935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1077935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    /*
1087935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     * Testing setters
1097935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert     */
1107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public void TestSetSymbols() {
1117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // ICU's JDK DecimalFormatSymbols implementation for de_DE locale
1127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DecimalFormatSymbols decfs = DecimalFormatSymbols.getInstance(TestUtil.toICUExtendedLocale(new Locale("de", "DE")));
1137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // en_US is supported by JDK, so this is the JDK's own DecimalFormatSymbols
1157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        Locale loc = new Locale("en", "US");
1167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DecimalFormatSymbols decfsEnUS = DecimalFormatSymbols.getInstance(loc);
1177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // Copying over all symbols
1197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setCurrency(decfsEnUS.getCurrency());
1207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setCurrencySymbol(decfsEnUS.getCurrencySymbol());
1227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setDecimalSeparator(decfsEnUS.getDecimalSeparator());
1237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setDigit(decfsEnUS.getDigit());
1247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setExponentSeparator(decfsEnUS.getExponentSeparator());
1257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setGroupingSeparator(decfsEnUS.getGroupingSeparator());
1267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setInfinity(decfsEnUS.getInfinity());
1277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setInternationalCurrencySymbol(decfsEnUS.getInternationalCurrencySymbol());
1287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setMinusSign(decfsEnUS.getMinusSign());
1297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setMonetaryDecimalSeparator(decfsEnUS.getMonetaryDecimalSeparator());
1307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setNaN(decfsEnUS.getNaN());
1317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setPatternSeparator(decfsEnUS.getPatternSeparator());
1327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setPercent(decfsEnUS.getPercent());
1337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setPerMill(decfsEnUS.getPerMill());
1347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        decfs.setZeroDigit(decfsEnUS.getZeroDigit());
1357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // Check
1377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        Currency cur = decfs.getCurrency();
1387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        Currency curEnUS = decfsEnUS.getCurrency();
1397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if ((cur != null && curEnUS == null)
1407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                || (cur == null && curEnUS != null)
1417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                || !cur.equals(curEnUS)) {
1427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("FAIL: Different results returned by getCurrency");
1437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getCurrencySymbol(), decfsEnUS.getCurrencySymbol(), loc, "getCurrencySymbol");
1467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getDecimalSeparator(), decfsEnUS.getDecimalSeparator(), loc, "getDecimalSeparator");
1477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getDigit(), decfsEnUS.getDigit(), loc, "getDigit");
1487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getExponentSeparator(), decfsEnUS.getExponentSeparator(), loc, "getExponentSeparator");
1497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getGroupingSeparator(), decfsEnUS.getGroupingSeparator(), loc, "getGroupingSeparator");
1507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getInfinity(), decfsEnUS.getInfinity(), loc, "getInfinity");
1517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getInternationalCurrencySymbol(), decfsEnUS.getInternationalCurrencySymbol(), loc, "getInternationalCurrencySymbol");
1527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getMinusSign(), decfsEnUS.getMinusSign(), loc, "getMinusSign");
1537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getMonetaryDecimalSeparator(), decfsEnUS.getMonetaryDecimalSeparator(), loc, "getMonetaryDecimalSeparator");
1547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getNaN(), decfsEnUS.getNaN(), loc, "getNaN");
1557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getPatternSeparator(), decfsEnUS.getPatternSeparator(), loc, "getPatternSeparator");
1567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getPercent(), decfsEnUS.getPercent(), loc, "getPercent");
1577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getPerMill(), decfsEnUS.getPerMill(), loc, "getPerMill");
1587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        checkEquivalence(decfs.getZeroDigit(), decfsEnUS.getZeroDigit(), loc, "getZeroDigit");
1597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
1607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public void TestKeywords() {
1627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // ICU provider variant is appended
1637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        ULocale uloc0 = new ULocale("en_US_" + TestUtil.ICU_VARIANT + "@numbers=Arab;currency=EUR");
1647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        Locale loc = uloc0.toLocale();
1657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // On Java 7+, locale extension is preserved
1667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        ULocale uloc = ULocale.forLocale(loc);
1677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        String nsType = uloc.getKeywordValue("numbers");
1687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if (nsType == null) {
1697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            // Java 6 - skip this test
1707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            return;
1717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        DecimalFormatSymbols jdkDecfs = DecimalFormatSymbols.getInstance(loc);
1747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        com.ibm.icu.text.DecimalFormatSymbols icuDecfs = com.ibm.icu.text.DecimalFormatSymbols.getInstance(uloc);
1757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // Check digit 0
1767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if (jdkDecfs.getDigit() != icuDecfs.getDigit()) {
1777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("FAIL: Different decimal digit - via JDK: " + jdkDecfs.getDigit() + ", with ICU: " + icuDecfs.getDigit());
1787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        String jdkCurrencyCode = jdkDecfs.getCurrency().getCurrencyCode();
1817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        String icuCurrencyCode = icuDecfs.getCurrency().getCurrencyCode();
1827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if (!jdkCurrencyCode.equals(icuCurrencyCode)) {
1837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("FAIL: Different currency code - via JDK: " + jdkCurrencyCode + ", with ICU: " + icuCurrencyCode);
1847935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
1867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert}
187