]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_4_2-src/main/tests/localespi/src/com/ibm/icu/dev/test/localespi/CurrencyNameTest.java
go
[Dictionary.git] / jars / icu4j-4_4_2-src / main / tests / localespi / src / com / ibm / icu / dev / test / localespi / CurrencyNameTest.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 2008-2010, 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             try {\r
28                 Currency currency = Currency.getInstance(l);\r
29                 if (currency != null) {\r
30                     currencies.add(currency);\r
31                 }\r
32             } catch (IllegalArgumentException iae) {\r
33                 logln("INFO: java.util.Currency.getInstance(Locale) throws IllegalArgumentException for locale: " + l);\r
34                 continue;\r
35             }\r
36         }\r
37 \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
43                 continue;\r
44             }\r
45             for (Locale loc : Locale.getAvailableLocales()) {\r
46                 if (TestUtil.isProblematicIBMLocale(loc)) {\r
47                     logln("Skipped " + loc);\r
48                     continue;\r
49                 }\r
50 \r
51                 String curSymbol = currency.getSymbol(loc);\r
52                 String curSymbolIcu = currencyIcu.getSymbol(loc);\r
53 \r
54                 if (curSymbolIcu.equals(currencyCode)) {\r
55                     // No data in ICU\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
59                     }\r
60                     continue;\r
61                 }\r
62 \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
68                         }\r
69                     }\r
70                 } else {\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
74                     }\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
81                     }\r
82                 }\r
83             }\r
84         }\r
85     }\r
86 }\r