001: /*
002: *******************************************************************************
003: * Copyright (C) 2006, International Business Machines Corporation and *
004: * others. All Rights Reserved. *
005: *******************************************************************************
006: */
007:
008: package com.ibm.icu.tests;
009:
010: import java.util.Locale;
011:
012: import com.ibm.icu.text.DecimalFormat;
013: import com.ibm.icu.text.DecimalFormatSymbols;
014:
015: public class DecimalFormatTest extends ICUTestCase {
016: private static final long lmax = Long.MAX_VALUE;
017: private static final double dsmall = 23.33;
018:
019: /*
020: * Test method for 'com.ibm.icu.text.DecimalFormat.clone()'
021: */
022: public void testClone() {
023: DecimalFormat df = new DecimalFormat("#,#0.00");
024: DecimalFormat df2 = new DecimalFormat("#,#0.00");
025: DecimalFormat dfn = new DecimalFormat("#,#0.00");
026: dfn.setNegativePrefix(dfn.getNegativePrefix() + '!');
027: testEHCS(df, df2, dfn);
028: }
029:
030: /*
031: * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat(DecimalFormat)'
032: */
033: public void testDecimalFormatDecimalFormat() {
034: // tested implicitly
035: }
036:
037: /*
038: * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat()'
039: */
040: public void testDecimalFormat() {
041: DecimalFormat df = new DecimalFormat();
042: assertEquals("9,223,372,036,854,775,807", df.format(lmax));
043: }
044:
045: /*
046: * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat(String)'
047: */
048: public void testDecimalFormatString() {
049: DecimalFormat df = new DecimalFormat("#,##0.000");
050: assertEquals("23.330", df.format(dsmall));
051: }
052:
053: /*
054: * Test method for 'com.ibm.icu.text.DecimalFormat.DecimalFormat(String, DecimalFormatSymbols)'
055: */
056: public void testDecimalFormatStringDecimalFormatSymbols() {
057: DecimalFormatSymbols sym = new DecimalFormatSymbols(
058: Locale.FRANCE);
059: DecimalFormat df = new DecimalFormat("#,##0.000", sym);
060: assertEquals("23,330", df.format(dsmall));
061: }
062:
063: /*
064: * Test method for 'com.ibm.icu.text.DecimalFormat.getDecimalFormatSymbols()'
065: */
066: public void testGetDecimalFormatSymbols() {
067: DecimalFormatSymbols sym = new DecimalFormatSymbols(
068: Locale.FRANCE);
069: DecimalFormat df = new DecimalFormat("#,##0.000", sym);
070: assertEquals(sym, df.getDecimalFormatSymbols());
071: }
072:
073: /*
074: * Test method for 'com.ibm.icu.text.DecimalFormat.setDecimalFormatSymbols(DecimalFormatSymbols)'
075: */
076: public void testSetDecimalFormatSymbols() {
077: DecimalFormat df = new DecimalFormat();
078: df.setDecimalFormatSymbols(new DecimalFormatSymbols(
079: Locale.FRANCE));
080: assertEquals("23,33", df.format(dsmall));
081: }
082:
083: /*
084: * Test method for 'com.ibm.icu.text.DecimalFormat.getPositivePrefix()'
085: */
086: public void testGetPositivePrefix() {
087: DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
088: assertEquals("+", df.getPositivePrefix());
089: }
090:
091: /*
092: * Test method for 'com.ibm.icu.text.DecimalFormat.setPositivePrefix(String)'
093: */
094: public void testSetPositivePrefix() {
095: DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
096: df.setPositivePrefix("?");
097: assertEquals("?23.3", df.format(dsmall));
098: }
099:
100: /*
101: * Test method for 'com.ibm.icu.text.DecimalFormat.getNegativePrefix()'
102: */
103: public void testGetNegativePrefix() {
104: DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
105: assertEquals("-", df.getNegativePrefix());
106: }
107:
108: /*
109: * Test method for 'com.ibm.icu.text.DecimalFormat.setNegativePrefix(String)'
110: */
111: public void testSetNegativePrefix() {
112: DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
113: df.setNegativePrefix("~");
114: assertEquals("~23.3", df.format(-dsmall));
115: }
116:
117: /*
118: * Test method for 'com.ibm.icu.text.DecimalFormat.getPositiveSuffix()'
119: */
120: public void testGetPositiveSuffix() {
121: DecimalFormat df = new DecimalFormat("+#,##0.#**;-#,##0.#~~");
122: assertEquals("**", df.getPositiveSuffix());
123: }
124:
125: /*
126: * Test method for 'com.ibm.icu.text.DecimalFormat.setPositiveSuffix(String)'
127: */
128: public void testSetPositiveSuffix() {
129: DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
130: df.setPositiveSuffix("**");
131: assertEquals("+23.3**", df.format(dsmall));
132: }
133:
134: /*
135: * Test method for 'com.ibm.icu.text.DecimalFormat.getNegativeSuffix()'
136: */
137: public void testGetNegativeSuffix() {
138: DecimalFormat df = new DecimalFormat("+#,##0.#**;-#,##0.#~~");
139: assertEquals("~~", df.getNegativeSuffix());
140: }
141:
142: /*
143: * Test method for 'com.ibm.icu.text.DecimalFormat.setNegativeSuffix(String)'
144: */
145: public void testSetNegativeSuffix() {
146: DecimalFormat df = new DecimalFormat("+#,##0.#;-#,##0.#");
147: df.setNegativeSuffix("~~");
148: assertEquals("-23.3~~", df.format(-dsmall));
149: }
150:
151: /*
152: * Test method for 'com.ibm.icu.text.DecimalFormat.getMultiplier()'
153: */
154: public void testGetMultiplier() {
155: DecimalFormat df = new DecimalFormat("%000");
156: df.setMultiplier(1000);
157: assertEquals(1000, df.getMultiplier());
158: }
159:
160: /*
161: * Test method for 'com.ibm.icu.text.DecimalFormat.setMultiplier(int)'
162: */
163: public void testSetMultiplier() {
164: DecimalFormat df = new DecimalFormat("%000");
165: assertEquals("%012", df.format(.123));
166: df.setMultiplier(1000);
167: assertEquals("%123", df.format(.123));
168: }
169:
170: /*
171: * Test method for 'com.ibm.icu.text.DecimalFormat.getGroupingSize()'
172: */
173: public void testGetGroupingSize() {
174: DecimalFormat df = new DecimalFormat("#,#0.#");
175: assertEquals(2, df.getGroupingSize());
176: }
177:
178: /*
179: * Test method for 'com.ibm.icu.text.DecimalFormat.setGroupingSize(int)'
180: */
181: public void testSetGroupingSize() {
182: DecimalFormat df = new DecimalFormat("#,##0.##");
183: assertEquals("1,234,567.89", df.format(1234567.89));
184: df.setGroupingSize(2);
185: assertEquals("1,23,45,67.89", df.format(1234567.89));
186: }
187:
188: /*
189: * Test method for 'com.ibm.icu.text.DecimalFormat.isDecimalSeparatorAlwaysShown()'
190: */
191: public void testIsDecimalSeparatorAlwaysShown() {
192: DecimalFormat df = new DecimalFormat("#.#");
193: df.setDecimalSeparatorAlwaysShown(false);
194: assertEquals("1", df.format(1));
195: assertEquals("1.2", df.format(1.2));
196: df.setDecimalSeparatorAlwaysShown(true);
197: assertEquals("1.", df.format(1));
198: }
199:
200: /*
201: * Test method for 'com.ibm.icu.text.DecimalFormat.setDecimalSeparatorAlwaysShown(boolean)'
202: */
203: public void testSetDecimalSeparatorAlwaysShown() {
204: DecimalFormat df = new DecimalFormat("#.#");
205: df.setDecimalSeparatorAlwaysShown(false);
206: assertFalse(df.isDecimalSeparatorAlwaysShown());
207: df.setDecimalSeparatorAlwaysShown(true);
208: assertTrue(df.isDecimalSeparatorAlwaysShown());
209: }
210:
211: /*
212: * Test method for 'com.ibm.icu.text.DecimalFormat.toPattern()'
213: */
214: public void testToPattern() {
215: DecimalFormat df = new DecimalFormat("#,##0.##");
216: assertEquals("#,##0.##", df.toPattern());
217: }
218:
219: /*
220: * Test method for 'com.ibm.icu.text.DecimalFormat.toLocalizedPattern()'
221: */
222: public void testToLocalizedPattern() {
223: DecimalFormat df = new DecimalFormat("#,##0.##",
224: new DecimalFormatSymbols(Locale.FRANCE));
225: assertEquals("#,##0.##", df.toPattern());
226: assertEquals("#\u00a0##0,##", df.toLocalizedPattern());
227: }
228:
229: /*
230: * Test method for 'com.ibm.icu.text.DecimalFormat.applyPattern(String)'
231: */
232: public void testApplyPattern() {
233: DecimalFormat df = new DecimalFormat("#,##0.##");
234: df.applyPattern("#,0.#");
235: assertEquals("1,2,3.4", df.format(123.4));
236: }
237:
238: /*
239: * Test method for 'com.ibm.icu.text.DecimalFormat.applyLocalizedPattern(String)'
240: */
241: public void testApplyLocalizedPattern() {
242: DecimalFormat df = new DecimalFormat("#,##0.##",
243: new DecimalFormatSymbols(Locale.FRANCE));
244: df.applyLocalizedPattern("#\u00a00,#");
245: assertEquals("1\u00a02\u00a03,4", df.format(123.4));
246: }
247: }
|