2 *******************************************************************************
3 * Copyright (C) 2006-2011, International Business Machines Corporation and *
4 * others. All Rights Reserved. *
5 *******************************************************************************
8 package com.ibm.icu.tests;
10 import java.util.Locale;
12 import com.ibm.icu.text.DecimalFormat;
13 import com.ibm.icu.text.DecimalFormatSymbols;
15 public class DecimalFormatTest extends ICUTestCase {
16 private static final long lmax = Long.MAX_VALUE;
17 private static final double dsmall = 23.33;
20 * Test method for 'com.ibm.icu.text.DecimalFormat.clone()'
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);
31 * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat(DecimalFormat)'
33 public void testDecimalFormatDecimalFormat() {
38 * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat()'
40 public void testDecimalFormat() {
41 DecimalFormat df = new DecimalFormat();
42 assertEquals("9,223,372,036,854,775,807", df.format(lmax));
46 * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat(String)'
48 public void testDecimalFormatString() {
49 DecimalFormat df = new DecimalFormat("#,##0.000");
50 assertEquals("23.330", df.format(dsmall));
54 * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat(String, DecimalFormatSymbols)'
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));
63 * Test method for 'com.ibm.icu.text.DecimalFormat.getDecimalFormatSymbols()'
65 public void testGetDecimalFormatSymbols() {
66 DecimalFormatSymbols sym = new DecimalFormatSymbols(Locale.FRANCE);
67 DecimalFormat df = new DecimalFormat("#,##0.000", sym);
68 assertEquals(sym, df.getDecimalFormatSymbols());
72 * Test method for 'com.ibm.icu.text.DecimalFormat.setDecimalFormatSymbols(DecimalFormatSymbols)'
74 public void testSetDecimalFormatSymbols() {
75 DecimalFormat df = new DecimalFormat();
76 df.setDecimalFormatSymbols(new DecimalFormatSymbols(Locale.FRANCE));
77 assertEquals("23,33", df.format(dsmall));
81 * Test method for 'com.ibm.icu.text.DecimalFormat.getPositivePrefix()'
83 public void testGetPositivePrefix() {
84 DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
85 assertEquals("+", df.getPositivePrefix());
89 * Test method for 'com.ibm.icu.text.DecimalFormat.setPositivePrefix(String)'
91 public void testSetPositivePrefix() {
92 DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
93 df.setPositivePrefix("?");
94 assertEquals("?23.3", df.format(dsmall));
98 * Test method for 'com.ibm.icu.text.DecimalFormat.getNegativePrefix()'
100 public void testGetNegativePrefix() {
101 DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
102 assertEquals("-", df.getNegativePrefix());
106 * Test method for 'com.ibm.icu.text.DecimalFormat.setNegativePrefix(String)'
108 public void testSetNegativePrefix() {
109 DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
110 df.setNegativePrefix("~");
111 assertEquals("~23.3", df.format(-dsmall));
115 * Test method for 'com.ibm.icu.text.DecimalFormat.getPositiveSuffix()'
117 public void testGetPositiveSuffix() {
118 DecimalFormat df = new DecimalFormat("+#,##0.#**;-#,##0.#~~");
119 assertEquals("**", df.getPositiveSuffix());
123 * Test method for 'com.ibm.icu.text.DecimalFormat.setPositiveSuffix(String)'
125 public void testSetPositiveSuffix() {
126 DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
127 df.setPositiveSuffix("**");
128 assertEquals("+23.3**", df.format(dsmall));
132 * Test method for 'com.ibm.icu.text.DecimalFormat.getNegativeSuffix()'
134 public void testGetNegativeSuffix() {
135 DecimalFormat df = new DecimalFormat("+#,##0.#**;-#,##0.#~~");
136 assertEquals("~~", df.getNegativeSuffix());
140 * Test method for 'com.ibm.icu.text.DecimalFormat.setNegativeSuffix(String)'
142 public void testSetNegativeSuffix() {
143 DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
144 df.setNegativeSuffix("~~");
145 assertEquals("-23.3~~", df.format(-dsmall));
149 * Test method for 'com.ibm.icu.text.DecimalFormat.getMultiplier()'
151 public void testGetMultiplier() {
152 DecimalFormat df = new DecimalFormat("%000");
153 df.setMultiplier(1000);
154 assertEquals(1000, df.getMultiplier());
158 * Test method for 'com.ibm.icu.text.DecimalFormat.setMultiplier(int)'
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));
168 * Test method for 'com.ibm.icu.text.DecimalFormat.getGroupingSize()'
170 public void testGetGroupingSize() {
171 DecimalFormat df = new DecimalFormat("#,#0.#");
172 assertEquals(2, df.getGroupingSize());
176 * Test method for 'com.ibm.icu.text.DecimalFormat.setGroupingSize(int)'
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));
186 * Test method for 'com.ibm.icu.text.DecimalFormat.isDecimalSeparatorAlwaysShown()'
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));
198 * Test method for 'com.ibm.icu.text.DecimalFormat.setDecimalSeparatorAlwaysShown(boolean)'
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());
209 * Test method for 'com.ibm.icu.text.DecimalFormat.toPattern()'
211 public void testToPattern() {
212 DecimalFormat df = new DecimalFormat("#,##0.##");
213 assertEquals("#,##0.##", df.toPattern());
217 * Test method for 'com.ibm.icu.text.DecimalFormat.toLocalizedPattern()'
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());
226 * Test method for 'com.ibm.icu.text.DecimalFormat.applyPattern(String)'
228 public void testApplyPattern() {
229 DecimalFormat df = new DecimalFormat("#,##0.##");
230 df.applyPattern("#,0.#");
231 assertEquals("1,2,3.4", df.format(123.4));
235 * Test method for 'com.ibm.icu.text.DecimalFormat.applyLocalizedPattern(String)'
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));