]> granicus.if.org Git - icu/blob
b438e2fb95fa44c359a984090a19e66812ac7434
[icu] /
1 /*
2  *******************************************************************************
3  * Copyright (C) 2006-2011, International Business Machines Corporation and    *
4  * others. All Rights Reserved.                                                *
5  *******************************************************************************
6  */
7
8 package com.ibm.icu.tests;
9
10 import java.util.Locale;
11
12 import com.ibm.icu.text.DecimalFormat;
13 import com.ibm.icu.text.DecimalFormatSymbols;
14
15 public class DecimalFormatTest extends ICUTestCase {
16     private static final long lmax = Long.MAX_VALUE;
17     private static final double dsmall = 23.33;
18         
19     /*
20      * Test method for 'com.ibm.icu.text.DecimalFormat.clone()'
21      */
22     public void testClone() {
23         DecimalFormat df = new DecimalFormat("#,#0.00");
24         DecimalFormat df2 = new DecimalFormat("#,#0.00");
25         DecimalFormat dfn = new DecimalFormat("#,#0.00");
26         dfn.setNegativePrefix(dfn.getNegativePrefix() + '!');
27         testEHCS(df, df2, dfn);
28     }
29
30     /*
31      * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat(DecimalFormat)'
32      */
33     public void testDecimalFormatDecimalFormat() {
34         // tested implicitly
35     }
36
37     /*
38      * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat()'
39      */
40     public void testDecimalFormat() {
41         DecimalFormat df = new DecimalFormat();
42         assertEquals("9,223,372,036,854,775,807", df.format(lmax));
43     }
44
45     /*
46      * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat(String)'
47      */
48     public void testDecimalFormatString() {
49         DecimalFormat df = new DecimalFormat("#,##0.000");
50         assertEquals("23.330", df.format(dsmall));
51     }
52
53     /*
54      * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat(String, DecimalFormatSymbols)'
55      */
56     public void testDecimalFormatStringDecimalFormatSymbols() {
57         DecimalFormatSymbols sym = new DecimalFormatSymbols(Locale.FRANCE);
58         DecimalFormat df = new DecimalFormat("#,##0.000", sym);
59         assertEquals("23,330", df.format(dsmall));
60     }
61
62     /*
63      * Test method for 'com.ibm.icu.text.DecimalFormat.getDecimalFormatSymbols()'
64      */
65     public void testGetDecimalFormatSymbols() {
66         DecimalFormatSymbols sym = new DecimalFormatSymbols(Locale.FRANCE);
67         DecimalFormat df = new DecimalFormat("#,##0.000", sym);
68         assertEquals(sym, df.getDecimalFormatSymbols());
69     }
70
71     /*
72      * Test method for 'com.ibm.icu.text.DecimalFormat.setDecimalFormatSymbols(DecimalFormatSymbols)'
73      */
74     public void testSetDecimalFormatSymbols() {
75         DecimalFormat df = new DecimalFormat();
76         df.setDecimalFormatSymbols(new DecimalFormatSymbols(Locale.FRANCE));
77         assertEquals("23,33", df.format(dsmall));
78     }
79
80     /*
81      * Test method for 'com.ibm.icu.text.DecimalFormat.getPositivePrefix()'
82      */
83     public void testGetPositivePrefix() {
84         DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
85         assertEquals("+", df.getPositivePrefix());
86     }
87
88     /*
89      * Test method for 'com.ibm.icu.text.DecimalFormat.setPositivePrefix(String)'
90      */
91     public void testSetPositivePrefix() {
92         DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
93         df.setPositivePrefix("?");
94         assertEquals("?23.3", df.format(dsmall));
95     }
96
97     /*
98      * Test method for 'com.ibm.icu.text.DecimalFormat.getNegativePrefix()'
99      */
100     public void testGetNegativePrefix() {
101         DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
102         assertEquals("-", df.getNegativePrefix());
103     }
104
105     /*
106      * Test method for 'com.ibm.icu.text.DecimalFormat.setNegativePrefix(String)'
107      */
108     public void testSetNegativePrefix() {
109         DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
110         df.setNegativePrefix("~");
111         assertEquals("~23.3", df.format(-dsmall));
112     }
113
114     /*
115      * Test method for 'com.ibm.icu.text.DecimalFormat.getPositiveSuffix()'
116      */
117     public void testGetPositiveSuffix() {
118         DecimalFormat df = new DecimalFormat("+#,##0.#**;-#,##0.#~~");
119         assertEquals("**", df.getPositiveSuffix());
120     }
121
122     /*
123      * Test method for 'com.ibm.icu.text.DecimalFormat.setPositiveSuffix(String)'
124      */
125     public void testSetPositiveSuffix() {
126         DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
127         df.setPositiveSuffix("**");
128         assertEquals("+23.3**", df.format(dsmall));
129     }
130
131     /*
132      * Test method for 'com.ibm.icu.text.DecimalFormat.getNegativeSuffix()'
133      */
134     public void testGetNegativeSuffix() {
135         DecimalFormat df = new DecimalFormat("+#,##0.#**;-#,##0.#~~");
136         assertEquals("~~", df.getNegativeSuffix());
137     }
138
139     /*
140      * Test method for 'com.ibm.icu.text.DecimalFormat.setNegativeSuffix(String)'
141      */
142     public void testSetNegativeSuffix() {
143         DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
144         df.setNegativeSuffix("~~");
145         assertEquals("-23.3~~", df.format(-dsmall));
146     }
147
148     /*
149      * Test method for 'com.ibm.icu.text.DecimalFormat.getMultiplier()'
150      */
151     public void testGetMultiplier() {
152         DecimalFormat df = new DecimalFormat("%000");
153         df.setMultiplier(1000);
154         assertEquals(1000, df.getMultiplier());
155     }
156
157     /*
158      * Test method for 'com.ibm.icu.text.DecimalFormat.setMultiplier(int)'
159      */
160     public void testSetMultiplier() {
161         DecimalFormat df = new DecimalFormat("%000");
162         assertEquals("%012", df.format(.123));
163         df.setMultiplier(1000);
164         assertEquals("%123", df.format(.123));
165     }
166
167     /*
168      * Test method for 'com.ibm.icu.text.DecimalFormat.getGroupingSize()'
169      */
170     public void testGetGroupingSize() {
171         DecimalFormat df = new DecimalFormat("#,#0.#");
172         assertEquals(2, df.getGroupingSize());
173     }
174
175     /*
176      * Test method for 'com.ibm.icu.text.DecimalFormat.setGroupingSize(int)'
177      */
178     public void testSetGroupingSize() {
179         DecimalFormat df = new DecimalFormat("#,##0.##");
180         assertEquals("1,234,567.89", df.format(1234567.89));
181         df.setGroupingSize(2);
182         assertEquals("1,23,45,67.89", df.format(1234567.89));
183     }
184
185     /*
186      * Test method for 'com.ibm.icu.text.DecimalFormat.isDecimalSeparatorAlwaysShown()'
187      */
188     public void testIsDecimalSeparatorAlwaysShown() {
189         DecimalFormat df = new DecimalFormat("#.#");
190         df.setDecimalSeparatorAlwaysShown(false);
191         assertEquals("1", df.format(1));
192         assertEquals("1.2", df.format(1.2));
193         df.setDecimalSeparatorAlwaysShown(true);
194         assertEquals("1.", df.format(1));
195     }
196
197     /*
198      * Test method for 'com.ibm.icu.text.DecimalFormat.setDecimalSeparatorAlwaysShown(boolean)'
199      */
200     public void testSetDecimalSeparatorAlwaysShown() {
201         DecimalFormat df = new DecimalFormat("#.#");
202         df.setDecimalSeparatorAlwaysShown(false);
203         assertFalse(df.isDecimalSeparatorAlwaysShown());
204         df.setDecimalSeparatorAlwaysShown(true);
205         assertTrue(df.isDecimalSeparatorAlwaysShown());
206     }
207
208     /*
209      * Test method for 'com.ibm.icu.text.DecimalFormat.toPattern()'
210      */
211     public void testToPattern() {
212         DecimalFormat df = new DecimalFormat("#,##0.##");
213         assertEquals("#,##0.##", df.toPattern());
214     }
215
216     /*
217      * Test method for 'com.ibm.icu.text.DecimalFormat.toLocalizedPattern()'
218      */
219     public void testToLocalizedPattern() {
220         DecimalFormat df = new DecimalFormat("#,##0.##", new DecimalFormatSymbols(Locale.FRANCE));
221         assertEquals("#,##0.##", df.toPattern());
222         assertEquals("#\u00a0##0,##", df.toLocalizedPattern());
223     }
224
225     /*
226      * Test method for 'com.ibm.icu.text.DecimalFormat.applyPattern(String)'
227      */
228     public void testApplyPattern() {
229         DecimalFormat df = new DecimalFormat("#,##0.##");
230         df.applyPattern("#,0.#");
231         assertEquals("1,2,3.4", df.format(123.4));
232     }
233
234     /*
235      * Test method for 'com.ibm.icu.text.DecimalFormat.applyLocalizedPattern(String)'
236      */
237     public void testApplyLocalizedPattern() {
238         DecimalFormat df = new DecimalFormat("#,##0.##", new DecimalFormatSymbols(Locale.FRANCE));
239         df.applyLocalizedPattern("#\u00a00,#");
240         assertEquals("1\u00a02\u00a03,4", df.format(123.4));
241     }
242 }