2 *******************************************************************************
\r
3 * Copyright (C) 2006, International Business Machines Corporation and *
\r
4 * others. All Rights Reserved. *
\r
5 *******************************************************************************
\r
8 package com.ibm.icu.tests;
\r
10 import java.util.Locale;
\r
12 import com.ibm.icu.text.DecimalFormat;
\r
13 import com.ibm.icu.text.DecimalFormatSymbols;
\r
15 public class DecimalFormatTest extends ICUTestCase {
\r
16 private static final long lmax = Long.MAX_VALUE;
\r
17 private static final double dsmall = 23.33;
\r
20 * Test method for 'com.ibm.icu.text.DecimalFormat.clone()'
\r
22 public void testClone() {
\r
23 DecimalFormat df = new DecimalFormat("#,#0.00");
\r
24 DecimalFormat df2 = new DecimalFormat("#,#0.00");
\r
25 DecimalFormat dfn = new DecimalFormat("#,#0.00");
\r
26 dfn.setNegativePrefix(dfn.getNegativePrefix() + '!');
\r
27 testEHCS(df, df2, dfn);
\r
31 * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat(DecimalFormat)'
\r
33 public void testDecimalFormatDecimalFormat() {
\r
34 // tested implicitly
\r
38 * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat()'
\r
40 public void testDecimalFormat() {
\r
41 DecimalFormat df = new DecimalFormat();
\r
42 assertEquals("9,223,372,036,854,775,807", df.format(lmax));
\r
46 * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat(String)'
\r
48 public void testDecimalFormatString() {
\r
49 DecimalFormat df = new DecimalFormat("#,##0.000");
\r
50 assertEquals("23.330", df.format(dsmall));
\r
54 * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat(String, DecimalFormatSymbols)'
\r
56 public void testDecimalFormatStringDecimalFormatSymbols() {
\r
57 DecimalFormatSymbols sym = new DecimalFormatSymbols(Locale.FRANCE);
\r
58 DecimalFormat df = new DecimalFormat("#,##0.000", sym);
\r
59 assertEquals("23,330", df.format(dsmall));
\r
63 * Test method for 'com.ibm.icu.text.DecimalFormat.getDecimalFormatSymbols()'
\r
65 public void testGetDecimalFormatSymbols() {
\r
66 DecimalFormatSymbols sym = new DecimalFormatSymbols(Locale.FRANCE);
\r
67 DecimalFormat df = new DecimalFormat("#,##0.000", sym);
\r
68 assertEquals(sym, df.getDecimalFormatSymbols());
\r
72 * Test method for 'com.ibm.icu.text.DecimalFormat.setDecimalFormatSymbols(DecimalFormatSymbols)'
\r
74 public void testSetDecimalFormatSymbols() {
\r
75 DecimalFormat df = new DecimalFormat();
\r
76 df.setDecimalFormatSymbols(new DecimalFormatSymbols(Locale.FRANCE));
\r
77 assertEquals("23,33", df.format(dsmall));
\r
81 * Test method for 'com.ibm.icu.text.DecimalFormat.getPositivePrefix()'
\r
83 public void testGetPositivePrefix() {
\r
84 DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
\r
85 assertEquals("+", df.getPositivePrefix());
\r
89 * Test method for 'com.ibm.icu.text.DecimalFormat.setPositivePrefix(String)'
\r
91 public void testSetPositivePrefix() {
\r
92 DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
\r
93 df.setPositivePrefix("?");
\r
94 assertEquals("?23.3", df.format(dsmall));
\r
98 * Test method for 'com.ibm.icu.text.DecimalFormat.getNegativePrefix()'
\r
100 public void testGetNegativePrefix() {
\r
101 DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
\r
102 assertEquals("-", df.getNegativePrefix());
\r
106 * Test method for 'com.ibm.icu.text.DecimalFormat.setNegativePrefix(String)'
\r
108 public void testSetNegativePrefix() {
\r
109 DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
\r
110 df.setNegativePrefix("~");
\r
111 assertEquals("~23.3", df.format(-dsmall));
\r
115 * Test method for 'com.ibm.icu.text.DecimalFormat.getPositiveSuffix()'
\r
117 public void testGetPositiveSuffix() {
\r
118 DecimalFormat df = new DecimalFormat("+#,##0.#**;-#,##0.#~~");
\r
119 assertEquals("**", df.getPositiveSuffix());
\r
123 * Test method for 'com.ibm.icu.text.DecimalFormat.setPositiveSuffix(String)'
\r
125 public void testSetPositiveSuffix() {
\r
126 DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
\r
127 df.setPositiveSuffix("**");
\r
128 assertEquals("+23.3**", df.format(dsmall));
\r
132 * Test method for 'com.ibm.icu.text.DecimalFormat.getNegativeSuffix()'
\r
134 public void testGetNegativeSuffix() {
\r
135 DecimalFormat df = new DecimalFormat("+#,##0.#**;-#,##0.#~~");
\r
136 assertEquals("~~", df.getNegativeSuffix());
\r
140 * Test method for 'com.ibm.icu.text.DecimalFormat.setNegativeSuffix(String)'
\r
142 public void testSetNegativeSuffix() {
\r
143 DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
\r
144 df.setNegativeSuffix("~~");
\r
145 assertEquals("-23.3~~", df.format(-dsmall));
\r
149 * Test method for 'com.ibm.icu.text.DecimalFormat.getMultiplier()'
\r
151 public void testGetMultiplier() {
\r
152 DecimalFormat df = new DecimalFormat("%000");
\r
153 df.setMultiplier(1000);
\r
154 assertEquals(1000, df.getMultiplier());
\r
158 * Test method for 'com.ibm.icu.text.DecimalFormat.setMultiplier(int)'
\r
160 public void testSetMultiplier() {
\r
161 DecimalFormat df = new DecimalFormat("%000");
\r
162 assertEquals("%012", df.format(.123));
\r
163 df.setMultiplier(1000);
\r
164 assertEquals("%123", df.format(.123));
\r
168 * Test method for 'com.ibm.icu.text.DecimalFormat.getGroupingSize()'
\r
170 public void testGetGroupingSize() {
\r
171 DecimalFormat df = new DecimalFormat("#,#0.#");
\r
172 assertEquals(2, df.getGroupingSize());
\r
176 * Test method for 'com.ibm.icu.text.DecimalFormat.setGroupingSize(int)'
\r
178 public void testSetGroupingSize() {
\r
179 DecimalFormat df = new DecimalFormat("#,##0.##");
\r
180 assertEquals("1,234,567.89", df.format(1234567.89));
\r
181 df.setGroupingSize(2);
\r
182 assertEquals("1,23,45,67.89", df.format(1234567.89));
\r
186 * Test method for 'com.ibm.icu.text.DecimalFormat.isDecimalSeparatorAlwaysShown()'
\r
188 public void testIsDecimalSeparatorAlwaysShown() {
\r
189 DecimalFormat df = new DecimalFormat("#.#");
\r
190 df.setDecimalSeparatorAlwaysShown(false);
\r
191 assertEquals("1", df.format(1));
\r
192 assertEquals("1.2", df.format(1.2));
\r
193 df.setDecimalSeparatorAlwaysShown(true);
\r
194 assertEquals("1.", df.format(1));
\r
198 * Test method for 'com.ibm.icu.text.DecimalFormat.setDecimalSeparatorAlwaysShown(boolean)'
\r
200 public void testSetDecimalSeparatorAlwaysShown() {
\r
201 DecimalFormat df = new DecimalFormat("#.#");
\r
202 df.setDecimalSeparatorAlwaysShown(false);
\r
203 assertFalse(df.isDecimalSeparatorAlwaysShown());
\r
204 df.setDecimalSeparatorAlwaysShown(true);
\r
205 assertTrue(df.isDecimalSeparatorAlwaysShown());
\r
209 * Test method for 'com.ibm.icu.text.DecimalFormat.toPattern()'
\r
211 public void testToPattern() {
\r
212 DecimalFormat df = new DecimalFormat("#,##0.##");
\r
213 assertEquals("#,##0.##", df.toPattern());
\r
217 * Test method for 'com.ibm.icu.text.DecimalFormat.toLocalizedPattern()'
\r
219 public void testToLocalizedPattern() {
\r
220 DecimalFormat df = new DecimalFormat("#,##0.##", new DecimalFormatSymbols(Locale.FRANCE));
\r
221 assertEquals("#,##0.##", df.toPattern());
\r
222 assertEquals("#\u00a0##0,##", df.toLocalizedPattern());
\r
226 * Test method for 'com.ibm.icu.text.DecimalFormat.applyPattern(String)'
\r
228 public void testApplyPattern() {
\r
229 DecimalFormat df = new DecimalFormat("#,##0.##");
\r
230 df.applyPattern("#,0.#");
\r
231 assertEquals("1,2,3.4", df.format(123.4));
\r
235 * Test method for 'com.ibm.icu.text.DecimalFormat.applyLocalizedPattern(String)'
\r
237 public void testApplyLocalizedPattern() {
\r
238 DecimalFormat df = new DecimalFormat("#,##0.##", new DecimalFormatSymbols(Locale.FRANCE));
\r
239 df.applyLocalizedPattern("#\u00a00,#");
\r
240 assertEquals("1\u00a02\u00a03,4", df.format(123.4));
\r