2 *******************************************************************************
\r
3 * Copyright (C) 2008-2010, International Business Machines Corporation and *
\r
4 * others. All Rights Reserved. *
\r
5 *******************************************************************************
\r
7 package com.ibm.icu.dev.test.localespi;
\r
9 import java.util.Currency;
\r
10 import java.util.HashSet;
\r
11 import java.util.Locale;
\r
13 import com.ibm.icu.dev.test.TestFmwk;
\r
15 public class CurrencyNameTest extends TestFmwk {
\r
16 public static void main(String[] args) throws Exception {
\r
17 new CurrencyNameTest().run(args);
\r
20 public void TestCurrencySymbols() {
\r
21 // Make a set of unique currencies
\r
22 HashSet<Currency> currencies = new HashSet<Currency>();
\r
23 for (Locale l : Locale.getAvailableLocales()) {
\r
24 if (l.getCountry().length() == 0) {
\r
28 Currency currency = Currency.getInstance(l);
\r
29 if (currency != null) {
\r
30 currencies.add(currency);
\r
32 } catch (IllegalArgumentException iae) {
\r
33 logln("INFO: java.util.Currency.getInstance(Locale) throws IllegalArgumentException for locale: " + l);
\r
38 for (Currency currency : currencies) {
\r
39 String currencyCode = currency.getCurrencyCode();
\r
40 com.ibm.icu.util.Currency currencyIcu = com.ibm.icu.util.Currency.getInstance(currencyCode);
\r
41 if (currencyIcu == null) {
\r
42 logln("INFO: Currency code " + currencyCode + " is not supported by ICU");
\r
45 for (Locale loc : Locale.getAvailableLocales()) {
\r
46 if (TestUtil.isProblematicIBMLocale(loc)) {
\r
47 logln("Skipped " + loc);
\r
51 String curSymbol = currency.getSymbol(loc);
\r
52 String curSymbolIcu = currencyIcu.getSymbol(loc);
\r
54 if (curSymbolIcu.equals(currencyCode)) {
\r
56 if (!curSymbol.equals(currencyCode)) {
\r
57 logln("INFO: JDK has currency symbol " + curSymbol + " for locale " +
\r
58 loc + ", but ICU does not");
\r
63 if (TestUtil.isICUExtendedLocale(loc)) {
\r
64 if (!curSymbol.equals(curSymbolIcu)) {
\r
65 if (!curSymbol.equals(curSymbolIcu)) {
\r
66 errln("FAIL: Currency symbol for " + currencyCode + " by ICU is " + curSymbolIcu
\r
67 + ", but got " + curSymbol + " in locale " + loc);
\r
71 if (!curSymbol.equals(curSymbolIcu)) {
\r
72 logln("INFO: Currency symbol for " + currencyCode + " by ICU is " + curSymbolIcu
\r
73 + ", but " + curSymbol + " by JDK in locale " + loc);
\r
75 // Try explicit ICU locale (xx_yy_ICU)
\r
76 Locale locIcu = TestUtil.toICUExtendedLocale(loc);
\r
77 curSymbol = currency.getSymbol(locIcu);
\r
78 if (!curSymbol.equals(curSymbolIcu)) {
\r
79 errln("FAIL: Currency symbol for " + currencyCode + " by ICU is " + curSymbolIcu
\r
80 + ", but got " + curSymbol + " in locale " + locIcu);
\r