1 /*****************************************************************************************
\r
3 * Copyright (C) 1996-2010, International Business Machines
\r
4 * Corporation and others. All Rights Reserved.
\r
8 * Port From: JDK 1.4b1 : java.text.Format.IntlTestDecimalFormatSymbols
\r
9 * Source File: java/text/format/IntlTestDecimalFormatSymbols.java
\r
14 @summary test International Decimal Format Symbols
\r
18 package com.ibm.icu.dev.test.format;
\r
20 import java.util.Locale;
\r
22 import com.ibm.icu.text.DecimalFormatSymbols;
\r
23 import com.ibm.icu.util.Currency;
\r
25 public class IntlTestDecimalFormatSymbols extends com.ibm.icu.dev.test.TestFmwk
\r
27 public static void main(String[] args) throws Exception {
\r
28 new IntlTestDecimalFormatSymbols().run(args);
\r
31 // Test the API of DecimalFormatSymbols; primarily a simple get/set set.
\r
32 public void TestSymbols()
\r
34 DecimalFormatSymbols fr = new DecimalFormatSymbols(Locale.FRENCH);
\r
36 DecimalFormatSymbols en = new DecimalFormatSymbols(Locale.ENGLISH);
\r
39 errln("ERROR: English DecimalFormatSymbols equal to French");
\r
42 // just do some VERY basic tests to make sure that get/set work
\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
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
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
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
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
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
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
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
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
98 char digit = en.getDigit();
\r
100 if(fr.getPercent() != en.getPercent()) {
\r
101 errln("ERROR: get/set Percent failed");
\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
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
117 String nan = en.getNaN();
\r
119 String nan2 = fr.getNaN();
\r
120 if(! nan.equals(nan2)) {
\r
121 errln("ERROR: get/set NaN failed");
\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
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
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
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
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
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
168 //DecimalFormatSymbols foo = new DecimalFormatSymbols(); //The variable is never used
\r
170 en = (DecimalFormatSymbols) fr.clone();
\r
172 if(! en.equals(fr)) {
\r
173 errln("ERROR: Clone failed");
\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