2 *******************************************************************************
\r
3 * Copyright (C) 2008, 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
27 Currency currency = Currency.getInstance(l);
\r
28 if (currency == null) {
\r
31 currencies.add(currency);
\r
34 for (Currency currency : currencies) {
\r
35 String currencyCode = currency.getCurrencyCode();
\r
36 com.ibm.icu.util.Currency currencyIcu = com.ibm.icu.util.Currency.getInstance(currencyCode);
\r
37 if (currencyIcu == null) {
\r
38 logln("INFO: Currency code " + currencyCode + " is not supported by ICU");
\r
41 for (Locale loc : Locale.getAvailableLocales()) {
\r
42 if (TestUtil.isProblematicIBMLocale(loc)) {
\r
43 logln("Skipped " + loc);
\r
47 String curSymbol = currency.getSymbol(loc);
\r
48 String curSymbolIcu = currencyIcu.getSymbol(loc);
\r
50 if (curSymbolIcu.equals(currencyCode)) {
\r
52 if (!curSymbol.equals(currencyCode)) {
\r
53 logln("INFO: JDK has currency symbol " + curSymbol + " for locale " +
\r
54 loc + ", but ICU does not");
\r
59 if (TestUtil.isICUExtendedLocale(loc)) {
\r
60 if (!curSymbol.equals(curSymbolIcu)) {
\r
61 if (!curSymbol.equals(curSymbolIcu)) {
\r
62 errln("FAIL: Currency symbol for " + currencyCode + " by ICU is " + curSymbolIcu
\r
63 + ", but got " + curSymbol + " in locale " + loc);
\r
67 if (!curSymbol.equals(curSymbolIcu)) {
\r
68 logln("INFO: Currency symbol for " + currencyCode + " by ICU is " + curSymbolIcu
\r
69 + ", but " + curSymbol + " by JDK in locale " + loc);
\r
71 // Try explicit ICU locale (xx_yy_ICU)
\r
72 Locale locIcu = TestUtil.toICUExtendedLocale(loc);
\r
73 curSymbol = currency.getSymbol(locIcu);
\r
74 if (!curSymbol.equals(curSymbolIcu)) {
\r
75 errln("FAIL: Currency symbol for " + currencyCode + " by ICU is " + curSymbolIcu
\r
76 + ", but got " + curSymbol + " in locale " + locIcu);
\r