]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_2_1-src/localespi/src/com/ibm/icu/dev/test/localespi/CurrencyNameTest.java
icu4jsrc
[Dictionary.git] / jars / icu4j-4_2_1-src / localespi / src / com / ibm / icu / dev / test / localespi / CurrencyNameTest.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 2008, International Business Machines Corporation and         *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  */\r
7 package com.ibm.icu.dev.test.localespi;\r
8 \r
9 import java.util.Currency;\r
10 import java.util.HashSet;\r
11 import java.util.Locale;\r
12 \r
13 import com.ibm.icu.dev.test.TestFmwk;\r
14 \r
15 public class CurrencyNameTest extends TestFmwk {\r
16     public static void main(String[] args) throws Exception {\r
17         new CurrencyNameTest().run(args);\r
18     }\r
19 \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
25                 continue;\r
26             }\r
27             Currency currency = Currency.getInstance(l);\r
28             if (currency == null) {\r
29                 continue;\r
30             }\r
31             currencies.add(currency);\r
32         }\r
33 \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
39                 continue;\r
40             }\r
41             for (Locale loc : Locale.getAvailableLocales()) {\r
42                 if (TestUtil.isProblematicIBMLocale(loc)) {\r
43                     logln("Skipped " + loc);\r
44                     continue;\r
45                 }\r
46 \r
47                 String curSymbol = currency.getSymbol(loc);\r
48                 String curSymbolIcu = currencyIcu.getSymbol(loc);\r
49 \r
50                 if (curSymbolIcu.equals(currencyCode)) {\r
51                     // No data in ICU\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
55                     }\r
56                     continue;\r
57                 }\r
58 \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
64                         }\r
65                     }\r
66                 } else {\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
70                     }\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
77                     }\r
78                 }\r
79             }\r
80         }\r
81     }\r
82 }\r