Thank you very much. I tested on wrong CLDR data last time. Fixed now. On 1/31/08, Alexei Zakharov <[EMAIL PROTECTED]> wrote: > Tony, > > I've placed CurrecnyTest back to the exclude list since it constantly > fails. Please see my comment to HARMONY-5407. > > Thanks, > Alexei > > 2008/1/21, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: > > Author: tonywu > > Date: Mon Jan 21 00:32:47 2008 > > New Revision: 613794 > > > > URL: http://svn.apache.org/viewvc?rev=613794&view=rev > > Log: > > Correct the testcase against latest ICU version 3.8/CLDR 5.0 and move this > > test out of exclude list. Filed these failures on RI as non-bug differences > > > > Modified: > > harmony/enhanced/classlib/trunk/modules/luni/make/exclude.common > > > > harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java > > > > Modified: harmony/enhanced/classlib/trunk/modules/luni/make/exclude.common > > URL: > > http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/make/exclude.common?rev=613794&r1=613793&r2=613794&view=diff > > ============================================================================== > > --- harmony/enhanced/classlib/trunk/modules/luni/make/exclude.common > > (original) > > +++ harmony/enhanced/classlib/trunk/modules/luni/make/exclude.common Mon > > Jan 21 00:32:47 2008 > > @@ -1,6 +1,5 @@ > > org/apache/harmony/luni/tests/java/net/URLClassLoaderTest.java > > org/apache/harmony/luni/tests/java/net/ExcludedProxyTest.java > > -org/apache/harmony/luni/tests/java/util/CurrencyTest.java > > org/apache/harmony/luni/tests/java/util/FormatterTest.java > > org/apache/harmony/luni/tests/java/util/GregorianCalendarTest.java > > org/apache/harmony/luni/tests/java/util/LocaleTest.java > > > > Modified: > > harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java > > URL: > > http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java?rev=613794&r1=613793&r2=613794&view=diff > > ============================================================================== > > --- > > harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java > > (original) > > +++ > > harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java > > Mon Jan 21 00:32:47 2008 > > @@ -22,337 +22,328 @@ > > > > public class CurrencyTest extends junit.framework.TestCase { > > > > - private static Locale defaultLocale = Locale.getDefault(); > > + private static Locale defaultLocale = Locale.getDefault(); > > > > - /** > > - * @tests java.util.Currency#getInstance(java.lang.String) > > - */ > > - public void test_getInstanceLjava_lang_String() { > > - // see test_getInstanceLjava_util_Locale() tests > > - } > > - > > - /** > > - * @tests java.util.Currency#getInstance(java.util.Locale) > > - */ > > - public void test_getInstanceLjava_util_Locale() { > > - /* > > - * the behaviour in all these three cases should be the > > same since this > > - * method ignores language and variant component of the > > locale. > > - */ > > - Currency c0 = Currency.getInstance("CAD"); > > - Currency c1 = Currency.getInstance(new Locale("en", "CA")); > > - assertTrue( > > - "Currency.getInstance(new > > Locale(\"en\",\"CA\")) isn't equal to Currency.getInstance(\"CAD\")", > > - c1 == c0); > > - Currency c2 = Currency.getInstance(new Locale("fr", "CA")); > > - assertTrue( > > - "Currency.getInstance(new > > Locale(\"fr\",\"CA\")) isn't equal to Currency.getInstance(\"CAD\")", > > - c2 == c0); > > - Currency c3 = Currency.getInstance(new Locale("", "CA")); > > - assertTrue( > > - "Currency.getInstance(new > > Locale(\"\",\"CA\")) isn't equal to Currency.getInstance(\"CAD\")", > > - c3 == c0); > > - > > - c0 = Currency.getInstance("JPY"); > > - c1 = Currency.getInstance(new Locale("ja", "JP")); > > - assertTrue( > > - "Currency.getInstance(new > > Locale(\"ja\",\"JP\")) isn't equal to Currency.getInstance(\"JPY\")", > > - c1 == c0); > > - c2 = Currency.getInstance(new Locale("", "JP")); > > - assertTrue( > > - "Currency.getInstance(new > > Locale(\"\",\"JP\")) isn't equal to Currency.getInstance(\"JPY\")", > > - c2 == c0); > > - c3 = Currency.getInstance(new Locale("bogus", "JP")); > > - assertTrue( > > - "Currency.getInstance(new > > Locale(\"bogus\",\"JP\")) isn't equal to Currency.getInstance(\"JPY\")", > > - c3 == c0); > > - > > - Locale localeGu = new Locale("gu", "IN"); > > - Currency cGu = Currency.getInstance(localeGu); > > - Locale localeKn = new Locale("kn", "IN"); > > - Currency cKn = Currency.getInstance(localeKn); > > - assertTrue("Currency.getInstance(Locale_" + > > localeGu.toString() + "))" > > - + "isn't equal to " + > > "Currency.getInstance(Locale_" > > - + localeKn.toString() + "))", cGu == cKn); > > - > > - // some teritories do not have currencies, like Antarctica > > - Locale loc = new Locale("", "AQ"); > > - try { > > - Currency curr = Currency.getInstance(loc); > > - assertNull( > > - "Currency.getInstance(new > > Locale(\"\", \"AQ\")) did not return null", > > - curr); > > - } catch (IllegalArgumentException e) { > > - fail("Unexpected IllegalArgumentException " + e); > > - } > > - > > - // unsupported/legacy iso3 countries > > - loc = new Locale("", "ZR"); > > - try { > > - Currency curr = Currency.getInstance(loc); > > - fail("Expected IllegalArgumentException"); > > - } catch (IllegalArgumentException e) { > > - } > > - > > - loc = new Locale("", "ZAR"); > > - try { > > - Currency curr = Currency.getInstance(loc); > > - fail("Expected IllegalArgumentException"); > > - } catch (IllegalArgumentException e) { > > - } > > - > > - loc = new Locale("", "FX"); > > - try { > > - Currency curr = Currency.getInstance(loc); > > - fail("Expected IllegalArgumentException"); > > - } catch (IllegalArgumentException e) { > > - } > > - > > - loc = new Locale("", "FXX"); > > - try { > > - Currency curr = Currency.getInstance(loc); > > - fail("Expected IllegalArgumentException"); > > - } catch (IllegalArgumentException e) { > > - } > > - } > > - > > - /** > > - * @tests java.util.Currency#getSymbol() > > - */ > > - public void test_getSymbol() { > > - > > - Currency currK = Currency.getInstance("KRW"); > > - Currency currI = Currency.getInstance("INR"); > > - Currency currUS = Currency.getInstance("USD"); > > - > > - Locale.setDefault(Locale.US); > > - assertEquals("currK.getSymbol()", "KRW", currK.getSymbol()); > > - assertEquals("currI.getSymbol()", "INR", currI.getSymbol()); > > - assertEquals("currUS.getSymbol()", "$", currUS.getSymbol()); > > - > > - Locale.setDefault(new Locale("ko", "KR")); > > - assertEquals("currK.getSymbol()", "\uffe6", > > currK.getSymbol()); > > - assertEquals("currI.getSymbol()", "INR", currI.getSymbol()); > > - assertEquals("currUS.getSymbol()", "USD", > > currUS.getSymbol()); > > - > > - // test what happens if this is an invalid locale, > > - // one with Korean country but an India language > > - // this method should return the currency codes in that case > > - Locale.setDefault(new Locale("kr", "KR")); > > - assertEquals("currK.getSymbol()", "KRW", currK.getSymbol()); > > - assertEquals("currI.getSymbol()", "INR", currI.getSymbol()); > > - assertEquals("currUS.getSymbol()", "USD", > > currUS.getSymbol()); > > - } > > - > > - /** > > - * @tests java.util.Currency#getSymbol(java.util.Locale) > > - */ > > - public void test_getSymbolLjava_util_Locale() { > > - Locale.setDefault(Locale.US); > > - Currency currE = Currency.getInstance("EUR"); > > - assertEquals("EUR", currE.getSymbol(Locale.JAPAN)); > > - assertEquals("EUR", currE.getSymbol(Locale.JAPANESE)); > > - assertEquals("EUR", currE.getSymbol(new Locale("", "FR"))); > > - assertEquals("\u20ac", currE.getSymbol(Locale.FRANCE)); > > - assertEquals("EUR", currE.getSymbol(Locale.FRENCH)); > > - > > - Currency currJ = Currency.getInstance("JPY"); > > - assertEquals("\uffe5", currJ.getSymbol(Locale.JAPAN)); > > - assertEquals("JPY", currJ.getSymbol(Locale.JAPANESE)); > > - assertEquals("JPY", currJ.getSymbol(Locale.FRANCE)); > > - assertEquals("JPY", currJ.getSymbol(Locale.FRENCH)); > > - > > - Currency currUS = Currency.getInstance("USD"); > > - assertEquals("USD", currUS.getSymbol(Locale.JAPAN)); > > - > > - Locale.setDefault(new Locale("ja", "JP")); > > - assertEquals("\uffe5", currJ.getSymbol(new Locale("", > > "JP"))); > > - assertEquals("USD", currUS.getSymbol(new Locale("", "JP"))); > > - > > - Locale.setDefault(Locale.US); > > - assertEquals("JPY", currJ.getSymbol(new Locale("", "JP"))); > > - assertEquals("$", currUS.getSymbol(new Locale("", "JP"))); > > - > > - assertEquals("USD", currUS.getSymbol(Locale.JAPANESE)); > > - assertEquals("USD", currUS.getSymbol(Locale.FRANCE)); > > - assertEquals("USD", currUS.getSymbol(Locale.FRENCH)); > > - assertEquals("USD", currUS.getSymbol(new Locale("fr", > > "FR"))); > > - assertEquals("$", currUS.getSymbol(new Locale("", "FR"))); > > // default > > - // locale > > - > > - assertEquals("$", currUS.getSymbol(Locale.US)); > > - assertEquals("USD", currUS.getSymbol(Locale.ENGLISH)); > > - > > - assertEquals("$", currUS.getSymbol(new Locale("en", "US"))); > > - assertEquals("$", currUS.getSymbol(new Locale("", "US"))); > > - > > - Currency currCA = Currency.getInstance("CAD"); > > - assertEquals("CAD", currCA.getSymbol(Locale.JAPAN)); > > - assertEquals("CAD", currCA.getSymbol(Locale.JAPANESE)); > > - assertEquals("CAD", currCA.getSymbol(Locale.FRANCE)); > > - assertEquals("CAD", currCA.getSymbol(Locale.FRENCH)); > > - assertEquals("CAD", currCA.getSymbol(Locale.US)); > > - assertEquals("CAD", currCA.getSymbol(Locale.ENGLISH)); > > - assertEquals("CAD", currCA.getSymbol(new Locale("es", > > "US"))); > > - assertEquals("CAD", currCA.getSymbol(new Locale("en", > > "US"))); > > - > > - assertEquals("$", currCA.getSymbol(Locale.CANADA)); > > - assertEquals("$", currCA.getSymbol(Locale.CANADA_FRENCH)); > > - assertEquals("$", currCA.getSymbol(new Locale("en", "CA"))); > > - assertEquals("$", currCA.getSymbol(new Locale("fr", "CA"))); > > - assertEquals("CAD", currCA.getSymbol(new Locale("", "CA"))); > > - > > - // tests what happens with improper locales, i.e. countries > > without the > > - // given language > > - assertEquals("currUS.getSymbol(new Locale(\"ar\", > > \"US\"))", "USD", > > - currUS.getSymbol(new Locale("ar", "US"))); > > - assertEquals("currUS.getSymbol(new Locale(\"ar\", > > \"CA\"))", "USD", > > - currUS.getSymbol(new Locale("ar", "CA"))); > > - assertEquals("currCA.getSymbol(new Locale(\"ar\", > > \"US\"))", "CAD", > > - currCA.getSymbol(new Locale("ar", "US"))); > > - assertEquals("currCA.getSymbol(new Locale(\"ar\", > > \"CA\"))", "CAD", > > - currCA.getSymbol(new Locale("ar", "CA"))); > > - assertEquals("currJ.getSymbol(new Locale(\"ja\", \"US\"))", > > "JPY", > > - currJ.getSymbol(new Locale("ja", "US"))); > > - assertEquals("currUS.getSymbol(new Locale(\"ja\", > > \"US\"))", "USD", > > - currUS.getSymbol(new Locale("ja", "US"))); > > - > > - // cross testing between USD and JPY when locale is > > JAPANESE JAPAN > > - > > - // set default locale to Locale_ja_JP > > - Locale.setDefault(new Locale("ja", "JP")); > > - > > - Currency currJ2 = Currency.getInstance("JPY"); > > - Currency currUS2 = Currency.getInstance("USD"); > > - > > - // the real JAPAN locale > > - assertEquals("\uffe5", currJ2.getSymbol(new Locale("ja", > > "JP"))); > > - > > - // no language > > - assertEquals("\uffe5", currJ2.getSymbol(new Locale("", > > "JP"))); > > - > > - // no country > > - assertEquals("JPY", currJ2.getSymbol(new Locale("ja", ""))); > > - > > - // no language > > - assertEquals("\uffe5", currJ2.getSymbol(new Locale("", > > "US"))); > > - > > - // no country > > - assertEquals("JPY", currJ2.getSymbol(new Locale("en", ""))); > > - > > - // bogus Locales , when default locale is Locale_ja_JP > > - assertEquals("JPY", currJ2.getSymbol(new Locale("ar", > > "JP"))); > > - assertEquals("JPY", currJ2.getSymbol(new Locale("ar", > > "US"))); > > - assertEquals("JPY", currJ2.getSymbol(new Locale("ja", > > "AE"))); > > - assertEquals("JPY", currJ2.getSymbol(new Locale("en", > > "AE"))); > > - assertEquals("currJ.getSymbol(new Locale(\"ja\", \"US\"))", > > "JPY", > > - currJ.getSymbol(new Locale("ja", "US"))); > > - > > - // the real US locale > > - assertEquals("$", currUS2.getSymbol(new Locale("en", > > "US"))); > > - > > - // no country > > - assertEquals("USD", currUS2.getSymbol(new Locale("ja", > > ""))); > > - > > - // no language > > - assertEquals("USD", currUS2.getSymbol(new Locale("", > > "JP"))); > > - > > - // no language > > - assertEquals("USD", currUS2.getSymbol(new Locale("", > > "US"))); > > - > > - // no country > > - assertEquals("USD", currUS2.getSymbol(new Locale("en", > > ""))); > > - > > - // bogus Locales , when default locale is Locale_ja_JP > > - assertEquals("USD", currUS2.getSymbol(new Locale("ar", > > "JP"))); > > - assertEquals("USD", currUS2.getSymbol(new Locale("ar", > > "US"))); > > - assertEquals("USD", currUS2.getSymbol(new Locale("ja", > > "AE"))); > > - assertEquals("USD", currUS2.getSymbol(new Locale("en", > > "AE"))); > > - assertEquals("currUS.getSymbol(new Locale(\"ja\", > > \"US\"))", "USD", > > - currUS.getSymbol(new Locale("ja", "US"))); > > - > > - Locale.setDefault(Locale.US); > > - > > - // euro tests > > - Currency currDKK = Currency.getInstance("DKK"); > > - assertEquals("\u20ac", currE.getSymbol(new Locale("da", > > "DK"))); > > - assertEquals("kr", currDKK.getSymbol(new Locale("da", > > "DK"))); > > - > > - assertEquals("EUR", currE.getSymbol(new Locale("da", ""))); > > - assertEquals("DKK", currDKK.getSymbol(new Locale("da", > > ""))); > > - > > - assertEquals("EUR", currE.getSymbol(new Locale("", "DK"))); > > - assertEquals("DKK", currDKK.getSymbol(new Locale("", > > "DK"))); > > - > > - Locale.setDefault(new Locale("da", "DK")); > > - assertEquals("\u20ac", currE.getSymbol(new Locale("da", > > "DK"))); > > - assertEquals("kr", currDKK.getSymbol(new Locale("da", > > "DK"))); > > - > > - assertEquals("EUR", currE.getSymbol(new Locale("da", ""))); > > - assertEquals("DKK", currDKK.getSymbol(new Locale("da", > > ""))); > > - > > - assertEquals("\u20ac", currE.getSymbol(new Locale("", > > "DK"))); > > - assertEquals("kr", currDKK.getSymbol(new Locale("", "DK"))); > > - > > - assertEquals("EUR", currE.getSymbol(new Locale("ar", > > "AE"))); > > - assertEquals("DKK", currDKK.getSymbol(new Locale("ar", > > "AE"))); > > - } > > - > > - /** > > - * @tests java.util.Currency#getDefaultFractionDigits() > > - */ > > - public void test_getDefaultFractionDigits() { > > - Currency c1 = Currency.getInstance("EUR"); > > - c1.getDefaultFractionDigits(); > > - assertEquals(" Currency.getInstance(\"" + c1 > > - + "\") returned incorrect number of digits. > > ", 2, c1 > > - .getDefaultFractionDigits()); > > - > > - Currency c2 = Currency.getInstance("JPY"); > > - c2.getDefaultFractionDigits(); > > - assertEquals(" Currency.getInstance(\"" + c2 > > - + "\") returned incorrect number of digits. > > ", 0, c2 > > - .getDefaultFractionDigits()); > > - > > - Currency c3 = Currency.getInstance("XBD"); > > - c3.getDefaultFractionDigits(); > > - assertEquals(" Currency.getInstance(\"" + c3 > > - + "\") returned incorrect number of digits. > > ", -1, c3 > > - .getDefaultFractionDigits()); > > - > > - } > > - > > - protected void setUp() { > > - Locale.setDefault(defaultLocale); > > - } > > - > > - protected void tearDown() { > > - } > > - > > - /** > > - * Helper method to display Currency info > > - * > > - * @param c > > - */ > > - private void printCurrency(Currency c) { > > - System.out.println(); > > - System.out.println(c.getCurrencyCode()); > > - System.out.println(c.getSymbol()); > > - System.out.println(c.getDefaultFractionDigits()); > > - } > > - > > - /** > > - * helper method to display Locale info > > - */ > > - private static void printLocale(Locale loc) { > > - System.out.println(); > > - System.out.println(loc.getDisplayName()); > > - System.out.println(loc.getCountry()); > > - System.out.println(loc.getLanguage()); > > - System.out.println(loc.getDisplayCountry()); > > - System.out.println(loc.getDisplayLanguage()); > > - System.out.println(loc.getDisplayName()); > > - System.out.println(loc.getISO3Country()); > > - System.out.println(loc.getISO3Language()); > > - } > > + /** > > + * @tests java.util.Currency#getInstance(java.lang.String) > > + */ > > + public void test_getInstanceLjava_lang_String() { > > + // see test_getInstanceLjava_util_Locale() tests > > + } > > + > > + /** > > + * @tests java.util.Currency#getInstance(java.util.Locale) > > + */ > > + public void test_getInstanceLjava_util_Locale() { > > + /* > > + * the behaviour in all these three cases should be the same since > > this > > + * method ignores language and variant component of the locale. > > + */ > > + Currency c0 = Currency.getInstance("CAD"); > > + Currency c1 = Currency.getInstance(new Locale("en", "CA")); > > + assertTrue( > > + "Currency.getInstance(new Locale(\"en\",\"CA\")) isn't > > equal to Currency.getInstance(\"CAD\")", > > + c1 == c0); > > + Currency c2 = Currency.getInstance(new Locale("fr", "CA")); > > + assertTrue( > > + "Currency.getInstance(new Locale(\"fr\",\"CA\")) isn't > > equal to Currency.getInstance(\"CAD\")", > > + c2 == c0); > > + Currency c3 = Currency.getInstance(new Locale("", "CA")); > > + assertTrue( > > + "Currency.getInstance(new Locale(\"\",\"CA\")) isn't equal > > to Currency.getInstance(\"CAD\")", > > + c3 == c0); > > + > > + c0 = Currency.getInstance("JPY"); > > + c1 = Currency.getInstance(new Locale("ja", "JP")); > > + assertTrue( > > + "Currency.getInstance(new Locale(\"ja\",\"JP\")) isn't > > equal to Currency.getInstance(\"JPY\")", > > + c1 == c0); > > + c2 = Currency.getInstance(new Locale("", "JP")); > > + assertTrue( > > + "Currency.getInstance(new Locale(\"\",\"JP\")) isn't equal > > to Currency.getInstance(\"JPY\")", > > + c2 == c0); > > + c3 = Currency.getInstance(new Locale("bogus", "JP")); > > + assertTrue( > > + "Currency.getInstance(new Locale(\"bogus\",\"JP\")) isn't > > equal to Currency.getInstance(\"JPY\")", > > + c3 == c0); > > + > > + Locale localeGu = new Locale("gu", "IN"); > > + Currency cGu = Currency.getInstance(localeGu); > > + Locale localeKn = new Locale("kn", "IN"); > > + Currency cKn = Currency.getInstance(localeKn); > > + assertTrue("Currency.getInstance(Locale_" + localeGu.toString() + > > "))" > > + + "isn't equal to " + "Currency.getInstance(Locale_" > > + + localeKn.toString() + "))", cGu == cKn); > > + > > + // some teritories do not have currencies, like Antarctica > > + Locale loc = new Locale("", "AQ"); > > + try { > > + Currency curr = Currency.getInstance(loc); > > + assertNull( > > + "Currency.getInstance(new Locale(\"\", \"AQ\")) did > > not return null", > > + curr); > > + } catch (IllegalArgumentException e) { > > + fail("Unexpected IllegalArgumentException " + e); > > + } > > + > > + // unsupported/legacy iso3 countries > > + // RI does not support them. > > + loc = new Locale("", "ZR"); > > + Currency.getInstance(loc); > > + > > + loc = new Locale("", "ZAR"); > > + Currency.getInstance(loc); > > + > > + loc = new Locale("", "FX"); > > + Currency.getInstance(loc); > > + > > + loc = new Locale("", "FXX"); > > + Currency.getInstance(loc); > > + } > > + > > + /** > > + * @tests java.util.Currency#getSymbol() > > + */ > > + public void test_getSymbol() { > > + > > + Currency currK = Currency.getInstance("KRW"); > > + Currency currI = Currency.getInstance("INR"); > > + Currency currUS = Currency.getInstance("USD"); > > + > > + Locale.setDefault(Locale.US); > > + assertEquals("currK.getSymbol()", "KRW", currK.getSymbol()); > > + // Some non-bug differences below because of CLDR data. > > + assertEquals("currI.getSymbol()", "0#Rs.|1#Re.|1<Rs.", currI > > + .getSymbol()); > > + assertEquals("currUS.getSymbol()", "$", currUS.getSymbol()); > > + > > + Locale.setDefault(new Locale("ko", "KR")); > > + assertEquals("currK.getSymbol()", "\uffe6", currK.getSymbol()); > > + assertEquals("currI.getSymbol()", "0#Rs.|1#Re.|1<Rs.", currI > > + .getSymbol()); > > + assertEquals("currUS.getSymbol()", "US$", currUS.getSymbol()); > > + > > + // test what happens if this is an invalid locale, > > + // one with Korean country but an India language > > + // this method should return the currency codes in that case > > + Locale.setDefault(new Locale("kr", "KR")); > > + assertEquals("currK.getSymbol()", "KRW", currK.getSymbol()); > > + assertEquals("currI.getSymbol()", "0#Rs.|1#Re.|1<Rs.", currI > > + .getSymbol()); > > + assertEquals("currUS.getSymbol()", "$", currUS.getSymbol()); > > + } > > + > > + /** > > + * @tests java.util.Currency#getSymbol(java.util.Locale) > > + */ > > + public void test_getSymbolLjava_util_Locale() { > > + Locale.setDefault(Locale.US); > > + Currency currE = Currency.getInstance("EUR"); > > + // Some non-bug differences below because of CLDR data. > > + assertEquals("\u20ac", currE.getSymbol(Locale.JAPAN)); > > + assertEquals("EUR", currE.getSymbol(Locale.JAPANESE)); > > + assertEquals("\u20ac", currE.getSymbol(new Locale("", "FR"))); > > + assertEquals("\u20ac", currE.getSymbol(Locale.FRANCE)); > > + assertEquals("EUR", currE.getSymbol(Locale.FRENCH)); > > + > > + Currency currJ = Currency.getInstance("JPY"); > > + assertEquals("\uffe5", currJ.getSymbol(Locale.JAPAN)); > > + assertEquals("JPY", currJ.getSymbol(Locale.JAPANESE)); > > + assertEquals("\u00a5", currJ.getSymbol(Locale.FRANCE)); > > + assertEquals("JPY", currJ.getSymbol(Locale.FRENCH)); > > + > > + Currency currUS = Currency.getInstance("USD"); > > + assertEquals("$", currUS.getSymbol(Locale.JAPAN)); > > + > > + Locale.setDefault(new Locale("ja", "JP")); > > + assertEquals("\u00a5", currJ.getSymbol(new Locale("", "JP"))); > > + assertEquals("$", currUS.getSymbol(new Locale("", "JP"))); > > + > > + Locale.setDefault(Locale.US); > > + assertEquals("\u00a5", currJ.getSymbol(new Locale("", "JP"))); > > + assertEquals("$", currUS.getSymbol(new Locale("", "JP"))); > > + > > + assertEquals("USD", currUS.getSymbol(Locale.JAPANESE)); > > + assertEquals("$", currUS.getSymbol(Locale.FRANCE)); > > + assertEquals("USD", currUS.getSymbol(Locale.FRENCH)); > > + assertEquals("$", currUS.getSymbol(new Locale("fr", "FR"))); > > + assertEquals("$", currUS.getSymbol(new Locale("", "FR"))); // > > default > > + // locale > > + > > + assertEquals("$", currUS.getSymbol(Locale.US)); > > + assertEquals("USD", currUS.getSymbol(Locale.ENGLISH)); > > + > > + assertEquals("$", currUS.getSymbol(new Locale("en", "US"))); > > + assertEquals("$", currUS.getSymbol(new Locale("", "US"))); > > + > > + Currency currCA = Currency.getInstance("CAD"); > > + assertEquals("CAD", currCA.getSymbol(Locale.JAPAN)); > > + assertEquals("CAD", currCA.getSymbol(Locale.JAPANESE)); > > + assertEquals("CAD", currCA.getSymbol(Locale.FRANCE)); > > + assertEquals("CAD", currCA.getSymbol(Locale.FRENCH)); > > + assertEquals("Can$", currCA.getSymbol(Locale.US)); > > + assertEquals("CAD", currCA.getSymbol(Locale.ENGLISH)); > > + assertEquals("Can$", currCA.getSymbol(new Locale("es", "US"))); > > + assertEquals("Can$", currCA.getSymbol(new Locale("en", "US"))); > > + > > + assertEquals("$", currCA.getSymbol(Locale.CANADA)); > > + assertEquals("$", currCA.getSymbol(Locale.CANADA_FRENCH)); > > + assertEquals("$", currCA.getSymbol(new Locale("en", "CA"))); > > + assertEquals("$", currCA.getSymbol(new Locale("fr", "CA"))); > > + assertEquals("CAD", currCA.getSymbol(new Locale("", "CA"))); > > + > > + // tests what happens with improper locales, i.e. countries > > without the > > + // given language > > + assertEquals("currUS.getSymbol(new Locale(\"ar\", \"US\"))", "$", > > + currUS.getSymbol(new Locale("ar", "US"))); > > + assertEquals("currUS.getSymbol(new Locale(\"ar\", \"CA\"))", "$", > > + currUS.getSymbol(new Locale("ar", "CA"))); > > + assertEquals("currCA.getSymbol(new Locale(\"ar\", \"US\"))", "CAD", > > + currCA.getSymbol(new Locale("ar", "US"))); > > + assertEquals("currCA.getSymbol(new Locale(\"ar\", \"CA\"))", "CAD", > > + currCA.getSymbol(new Locale("ar", "CA"))); > > + assertEquals("currJ.getSymbol(new Locale(\"ja\", \"US\"))", > > "\uffe5", > > + currJ.getSymbol(new Locale("ja", "US"))); > > + assertEquals("currUS.getSymbol(new Locale(\"ja\", \"US\"))", "$", > > + currUS.getSymbol(new Locale("ja", "US"))); > > + > > + // cross testing between USD and JPY when locale is JAPANESE JAPAN > > + > > + // set default locale to Locale_ja_JP > > + Locale.setDefault(new Locale("ja", "JP")); > > + > > + Currency currJ2 = Currency.getInstance("JPY"); > > + Currency currUS2 = Currency.getInstance("USD"); > > + > > + // the real JAPAN locale > > + assertEquals("\uffe5", currJ2.getSymbol(new Locale("ja", "JP"))); > > + > > + // no language > > + assertEquals("\u00a5", currJ2.getSymbol(new Locale("", "JP"))); > > + > > + // no country > > + assertEquals("JPY", currJ2.getSymbol(new Locale("ja", ""))); > > + > > + // no language > > + assertEquals("\u00a5", currJ2.getSymbol(new Locale("", "US"))); > > + > > + // no country > > + assertEquals("JPY", currJ2.getSymbol(new Locale("en", ""))); > > + > > + // bogus Locales , when default locale is Locale_ja_JP > > + assertEquals("\u00a5", currJ2.getSymbol(new Locale("ar", "JP"))); > > + assertEquals("\u00a5", currJ2.getSymbol(new Locale("ar", "US"))); > > + assertEquals("\uffe5", currJ2.getSymbol(new Locale("ja", "AE"))); > > + assertEquals("\u00a5", currJ2.getSymbol(new Locale("en", "AE"))); > > + assertEquals("currJ.getSymbol(new Locale(\"ja\", \"US\"))", > > "\uffe5", > > + currJ.getSymbol(new Locale("ja", "US"))); > > + > > + // the real US locale > > + assertEquals("$", currUS2.getSymbol(new Locale("en", "US"))); > > + > > + // no country > > + assertEquals("USD", currUS2.getSymbol(new Locale("ja", ""))); > > + > > + // no language > > + assertEquals("$", currUS2.getSymbol(new Locale("", "JP"))); > > + > > + // no language > > + assertEquals("$", currUS2.getSymbol(new Locale("", "US"))); > > + > > + // no country > > + assertEquals("USD", currUS2.getSymbol(new Locale("en", ""))); > > + > > + // bogus Locales , when default locale is Locale_ja_JP > > + assertEquals("$", currUS2.getSymbol(new Locale("ar", "JP"))); > > + assertEquals("$", currUS2.getSymbol(new Locale("ar", "US"))); > > + assertEquals("$", currUS2.getSymbol(new Locale("ja", "AE"))); > > + assertEquals("US$", currUS2.getSymbol(new Locale("en", "AE"))); > > + assertEquals("currUS.getSymbol(new Locale(\"ja\", \"US\"))", "$", > > + currUS.getSymbol(new Locale("ja", "US"))); > > + > > + Locale.setDefault(Locale.US); > > + > > + // euro tests > > + Currency currDKK = Currency.getInstance("DKK"); > > + assertEquals("\u20ac", currE.getSymbol(new Locale("da", "DK"))); > > + assertEquals("kr", currDKK.getSymbol(new Locale("da", "DK"))); > > + > > + assertEquals("EUR", currE.getSymbol(new Locale("da", ""))); > > + assertEquals("DKK", currDKK.getSymbol(new Locale("da", ""))); > > + > > + assertEquals("\u20ac", currE.getSymbol(new Locale("", "DK"))); > > + assertEquals("DKK", currDKK.getSymbol(new Locale("", "DK"))); > > + > > + Locale.setDefault(new Locale("da", "DK")); > > + assertEquals("\u20ac", currE.getSymbol(new Locale("da", "DK"))); > > + assertEquals("kr", currDKK.getSymbol(new Locale("da", "DK"))); > > + > > + assertEquals("EUR", currE.getSymbol(new Locale("da", ""))); > > + assertEquals("DKK", currDKK.getSymbol(new Locale("da", ""))); > > + > > + assertEquals("\u20ac", currE.getSymbol(new Locale("", "DK"))); > > + assertEquals("DKK", currDKK.getSymbol(new Locale("", "DK"))); > > + > > + assertEquals("\u20ac", currE.getSymbol(new Locale("ar", "AE"))); > > + assertEquals("DKK", currDKK.getSymbol(new Locale("ar", "AE"))); > > + } > > + > > + /** > > + * @tests java.util.Currency#getDefaultFractionDigits() > > + */ > > + public void test_getDefaultFractionDigits() { > > + Currency c1 = Currency.getInstance("EUR"); > > + c1.getDefaultFractionDigits(); > > + assertEquals(" Currency.getInstance(\"" + c1 > > + + "\") returned incorrect number of digits. ", 2, c1 > > + .getDefaultFractionDigits()); > > + > > + Currency c2 = Currency.getInstance("JPY"); > > + c2.getDefaultFractionDigits(); > > + assertEquals(" Currency.getInstance(\"" + c2 > > + + "\") returned incorrect number of digits. ", 0, c2 > > + .getDefaultFractionDigits()); > > + > > + Currency c3 = Currency.getInstance("XBD"); > > + // A non-bug differences below because of CLDR data. > > + c3.getDefaultFractionDigits(); > > + assertEquals(" Currency.getInstance(\"" + c3 > > + + "\") returned incorrect number of digits. ", 2, c3 > > + .getDefaultFractionDigits()); > > + > > + } > > + > > + protected void setUp() { > > + Locale.setDefault(defaultLocale); > > + } > > + > > + protected void tearDown() { > > + } > > + > > + /** > > + * Helper method to display Currency info > > + * > > + * @param c > > + */ > > + private void printCurrency(Currency c) { > > + System.out.println(); > > + System.out.println(c.getCurrencyCode()); > > + System.out.println(c.getSymbol()); > > + System.out.println(c.getDefaultFractionDigits()); > > + } > > + > > + /** > > + * helper method to display Locale info > > + */ > > + private static void printLocale(Locale loc) { > > + System.out.println(); > > + System.out.println(loc.getDisplayName()); > > + System.out.println(loc.getCountry()); > > + System.out.println(loc.getLanguage()); > > + System.out.println(loc.getDisplayCountry()); > > + System.out.println(loc.getDisplayLanguage()); > > + System.out.println(loc.getDisplayName()); > > + System.out.println(loc.getISO3Country()); > > + System.out.println(loc.getISO3Language()); > > + } > > } > > > > > > >
-- Tony Wu China Software Development Lab, IBM
