]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_4_2-src/main/tests/core/src/com/ibm/icu/dev/test/format/IntlTestDecimalFormatSymbols.java
go
[Dictionary.git] / jars / icu4j-4_4_2-src / main / tests / core / src / com / ibm / icu / dev / test / format / IntlTestDecimalFormatSymbols.java
1 /*****************************************************************************************\r
2  *\r
3  *   Copyright (C) 1996-2010, International Business Machines\r
4  *   Corporation and others.  All Rights Reserved.\r
5  **/\r
6 \r
7 /** \r
8  * Port From:   JDK 1.4b1 : java.text.Format.IntlTestDecimalFormatSymbols\r
9  * Source File: java/text/format/IntlTestDecimalFormatSymbols.java\r
10  **/\r
11  \r
12 /*\r
13     @test 1.4 98/03/06\r
14     @summary test International Decimal Format Symbols\r
15 */\r
16 \r
17 \r
18 package com.ibm.icu.dev.test.format;\r
19 \r
20 import java.util.Locale;\r
21 \r
22 import com.ibm.icu.text.DecimalFormatSymbols;\r
23 import com.ibm.icu.util.Currency;\r
24 \r
25 public class IntlTestDecimalFormatSymbols extends com.ibm.icu.dev.test.TestFmwk\r
26 {\r
27     public static void main(String[] args) throws Exception {\r
28         new IntlTestDecimalFormatSymbols().run(args);\r
29     }\r
30 \r
31     // Test the API of DecimalFormatSymbols; primarily a simple get/set set.\r
32     public void TestSymbols()\r
33     {\r
34         DecimalFormatSymbols fr = new DecimalFormatSymbols(Locale.FRENCH);\r
35 \r
36         DecimalFormatSymbols en = new DecimalFormatSymbols(Locale.ENGLISH);\r
37 \r
38         if(en.equals(fr)) {\r
39             errln("ERROR: English DecimalFormatSymbols equal to French");\r
40         }\r
41 \r
42         // just do some VERY basic tests to make sure that get/set work\r
43 \r
44         char zero = en.getZeroDigit();\r
45         fr.setZeroDigit(zero);\r
46         if(fr.getZeroDigit() != en.getZeroDigit()) {\r
47             errln("ERROR: get/set ZeroDigit failed");\r
48         }\r
49 \r
50         char sigDigit = en.getSignificantDigit();\r
51         fr.setSignificantDigit(sigDigit); \r
52         if(fr.getSignificantDigit() != en.getSignificantDigit()) {\r
53             errln("ERROR: get/set SignificantDigit failed");\r
54         }\r
55 \r
56         Currency currency = Currency.getInstance("USD");\r
57         fr.setCurrency(currency);\r
58         if (!fr.getCurrency().equals(currency)){\r
59             errln("ERROR: get/set Currency failed");\r
60         }\r
61             \r
62         char group = en.getGroupingSeparator();\r
63         fr.setGroupingSeparator(group);\r
64         if(fr.getGroupingSeparator() != en.getGroupingSeparator()) {\r
65             errln("ERROR: get/set GroupingSeparator failed");\r
66         }\r
67 \r
68         char decimal = en.getDecimalSeparator();\r
69         fr.setDecimalSeparator(decimal);\r
70         if(fr.getDecimalSeparator() != en.getDecimalSeparator()) {\r
71             errln("ERROR: get/set DecimalSeparator failed");\r
72         }\r
73 \r
74         char monetaryGroup = en.getMonetaryGroupingSeparator();\r
75         fr.setMonetaryGroupingSeparator(monetaryGroup);\r
76         if(fr.getMonetaryGroupingSeparator() != en.getMonetaryGroupingSeparator()) {\r
77             errln("ERROR: get/set MonetaryGroupingSeparator failed");\r
78         }\r
79 \r
80         char monetaryDecimal = en.getMonetaryDecimalSeparator();\r
81         fr.setMonetaryDecimalSeparator(monetaryDecimal);\r
82         if(fr.getMonetaryDecimalSeparator() != en.getMonetaryDecimalSeparator()) {\r
83             errln("ERROR: get/set MonetaryDecimalSeparator failed");\r
84         }\r
85 \r
86         char perMill = en.getPerMill();\r
87         fr.setPerMill(perMill);\r
88         if(fr.getPerMill() != en.getPerMill()) {\r
89             errln("ERROR: get/set PerMill failed");\r
90         }\r
91 \r
92         char percent = en.getPercent();\r
93         fr.setPercent(percent);\r
94         if(fr.getPercent() != en.getPercent()) {\r
95             errln("ERROR: get/set Percent failed");\r
96         }\r
97 \r
98         char digit = en.getDigit();\r
99         fr.setDigit(digit);\r
100         if(fr.getPercent() != en.getPercent()) {\r
101             errln("ERROR: get/set Percent failed");\r
102         }\r
103 \r
104         char patternSeparator = en.getPatternSeparator();\r
105         fr.setPatternSeparator(patternSeparator);\r
106         if(fr.getPatternSeparator() != en.getPatternSeparator()) {\r
107             errln("ERROR: get/set PatternSeparator failed");\r
108         }\r
109 \r
110         String infinity = en.getInfinity();\r
111         fr.setInfinity(infinity);\r
112         String infinity2 = fr.getInfinity();\r
113         if(! infinity.equals(infinity2)) {\r
114             errln("ERROR: get/set Infinity failed");\r
115         }\r
116 \r
117         String nan = en.getNaN();\r
118         fr.setNaN(nan);\r
119         String nan2 = fr.getNaN();\r
120         if(! nan.equals(nan2)) {\r
121             errln("ERROR: get/set NaN failed");\r
122         }\r
123 \r
124         char minusSign = en.getMinusSign();\r
125         fr.setMinusSign(minusSign);\r
126         if(fr.getMinusSign() != en.getMinusSign()) {\r
127             errln("ERROR: get/set MinusSign failed");\r
128         }\r
129 \r
130         char plusSign = en.getPlusSign();\r
131         fr.setPlusSign(plusSign);\r
132         if(fr.getPlusSign() != en.getPlusSign()) {\r
133             errln("ERROR: get/set PlusSign failed");\r
134         }\r
135 \r
136         char padEscape = en.getPadEscape();\r
137         fr.setPadEscape(padEscape);\r
138         if(fr.getPadEscape() != en.getPadEscape()) {\r
139             errln("ERROR: get/set PadEscape failed");\r
140         }\r
141 \r
142         String exponential = en.getExponentSeparator();\r
143         fr.setExponentSeparator(exponential);\r
144         if(fr.getExponentSeparator() != en.getExponentSeparator()) {\r
145             errln("ERROR: get/set Exponential failed");\r
146         }\r
147         \r
148         // Test CurrencySpacing.\r
149         // In CLDR 1.7, only root.txt has CurrencySpacing data. This data might \r
150         // be different between en and fr in the future.\r
151         for (int i = DecimalFormatSymbols.CURRENCY_SPC_CURRENCY_MATCH; i <= DecimalFormatSymbols.CURRENCY_SPC_INSERT; i++) {\r
152             if (en.getPatternForCurrencySpacing(i, true) !=\r
153                 fr.getPatternForCurrencySpacing(i, true)) {\r
154                 errln("ERROR: get currency spacing item:"+ i+" before the currency");\r
155                 if (en.getPatternForCurrencySpacing(i, false) !=\r
156                     fr.getPatternForCurrencySpacing(i, false)) {\r
157                     errln("ERROR: get currency spacing item:" + i + " after currency");\r
158                 }\r
159             }\r
160         }\r
161         \r
162         String dash = "-";\r
163         en.setPatternForCurrencySpacing(DecimalFormatSymbols.CURRENCY_SPC_INSERT, true, dash);\r
164         if (dash != en.getPatternForCurrencySpacing(DecimalFormatSymbols.CURRENCY_SPC_INSERT, true)) {\r
165             errln("ERROR: set currency spacing pattern for before currency.");\r
166         }\r
167 \r
168         //DecimalFormatSymbols foo = new DecimalFormatSymbols(); //The variable is never used\r
169 \r
170         en = (DecimalFormatSymbols) fr.clone();\r
171 \r
172         if(! en.equals(fr)) {\r
173             errln("ERROR: Clone failed");\r
174         }\r
175     }\r
176     \r
177     public void testCoverage() {\r
178         DecimalFormatSymbols df = new DecimalFormatSymbols();\r
179         DecimalFormatSymbols df2 = (DecimalFormatSymbols)df.clone();\r
180         if (!df.equals(df2) || df.hashCode() != df2.hashCode()) {\r
181             errln("decimal format symbols clone, equals, or hashCode failed");            \r
182         }\r
183     }\r
184 }\r