]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_2_1-src/src/com/ibm/icu/dev/test/format/IntlTestDecimalFormatSymbolsC.java
icu4jsrc
[Dictionary.git] / jars / icu4j-4_2_1-src / src / com / ibm / icu / dev / test / format / IntlTestDecimalFormatSymbolsC.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 2001-2004, International Business Machines Corporation and    *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  */\r
7 \r
8 /** \r
9  * Port From:   ICU4C v1.8.1 : format : IntlTestDecimalFormatSymbols\r
10  * Source File: $ICU4CRoot/source/test/intltest/tsdcfmsy.cpp\r
11  **/\r
12 \r
13 package com.ibm.icu.dev.test.format;\r
14 \r
15 import java.text.FieldPosition;\r
16 import java.util.Locale;\r
17 import com.ibm.icu.text.*;\r
18 \r
19 /**\r
20  * Tests for DecimalFormatSymbols\r
21  **/\r
22 public class IntlTestDecimalFormatSymbolsC extends com.ibm.icu.dev.test.TestFmwk {\r
23     \r
24     public static void main(String[] args) throws Exception {\r
25         new IntlTestDecimalFormatSymbolsC().run(args);\r
26     }\r
27 \r
28     /**\r
29      * Test the API of DecimalFormatSymbols; primarily a simple get/set set.\r
30      */\r
31     public void TestSymbols() {    \r
32         DecimalFormatSymbols fr = new DecimalFormatSymbols(Locale.FRENCH);    \r
33         DecimalFormatSymbols en = new DecimalFormatSymbols(Locale.ENGLISH);\r
34     \r
35         if (en.equals(fr)) {\r
36             errln("ERROR: English DecimalFormatSymbols equal to French");\r
37         }\r
38     \r
39         // just do some VERY basic tests to make sure that get/set work\r
40     \r
41         char zero = en.getZeroDigit();\r
42         fr.setZeroDigit(zero);\r
43         if (fr.getZeroDigit() != en.getZeroDigit()) {\r
44             errln("ERROR: get/set ZeroDigit failed");\r
45         }\r
46     \r
47         char group = en.getGroupingSeparator();\r
48         fr.setGroupingSeparator(group);\r
49         if (fr.getGroupingSeparator() != en.getGroupingSeparator()) {\r
50             errln("ERROR: get/set GroupingSeparator failed");\r
51         }\r
52     \r
53         char decimal = en.getDecimalSeparator();\r
54         fr.setDecimalSeparator(decimal);\r
55         if (fr.getDecimalSeparator() != en.getDecimalSeparator()) {\r
56             errln("ERROR: get/set DecimalSeparator failed");\r
57         }\r
58     \r
59         char perMill = en.getPerMill();\r
60         fr.setPerMill(perMill);\r
61         if (fr.getPerMill() != en.getPerMill()) {\r
62             errln("ERROR: get/set PerMill failed");\r
63         }\r
64     \r
65         char percent = en.getPercent();\r
66         fr.setPercent(percent);\r
67         if (fr.getPercent() != en.getPercent()) {\r
68             errln("ERROR: get/set Percent failed");\r
69         }\r
70     \r
71         char digit = en.getDigit();\r
72         fr.setDigit(digit);\r
73         if (fr.getPercent() != en.getPercent()) {\r
74             errln("ERROR: get/set Percent failed");\r
75         }\r
76     \r
77         char patternSeparator = en.getPatternSeparator();\r
78         fr.setPatternSeparator(patternSeparator);\r
79         if (fr.getPatternSeparator() != en.getPatternSeparator()) {\r
80             errln("ERROR: get/set PatternSeparator failed");\r
81         }\r
82     \r
83         String infinity = en.getInfinity();\r
84         fr.setInfinity(infinity);\r
85         String infinity2 = fr.getInfinity();\r
86         if (!infinity.equals(infinity2)) {\r
87             errln("ERROR: get/set Infinity failed");\r
88         }\r
89     \r
90         String nan = en.getNaN();\r
91         fr.setNaN(nan);\r
92         String nan2 = fr.getNaN();\r
93         if (!nan.equals(nan2)) {\r
94             errln("ERROR: get/set NaN failed");\r
95         }\r
96     \r
97         char minusSign = en.getMinusSign();\r
98         fr.setMinusSign(minusSign);\r
99         if (fr.getMinusSign() != en.getMinusSign()) {\r
100             errln("ERROR: get/set MinusSign failed");\r
101         }\r
102     \r
103         //        char exponential = en.getExponentialSymbol();\r
104         //        fr.setExponentialSymbol(exponential);\r
105         //        if(fr.getExponentialSymbol() != en.getExponentialSymbol()) {\r
106         //            errln("ERROR: get/set Exponential failed");\r
107         //        }\r
108     \r
109         //DecimalFormatSymbols foo = new DecimalFormatSymbols(); //The variable is never used\r
110     \r
111         en = (DecimalFormatSymbols) fr.clone();\r
112     \r
113         if (!en.equals(fr)) {\r
114             errln("ERROR: Clone failed");\r
115         }\r
116         \r
117         DecimalFormatSymbols sym = new DecimalFormatSymbols(Locale.US);\r
118     \r
119         verify(34.5, "00.00", sym, "34.50");\r
120         sym.setDecimalSeparator('S');\r
121         verify(34.5, "00.00", sym, "34S50");\r
122         sym.setPercent('P');\r
123         verify(34.5, "00 %", sym, "3450 P");\r
124         sym.setCurrencySymbol("D");\r
125         verify(34.5, "\u00a4##.##", sym, "D34.5");\r
126         sym.setGroupingSeparator('|');\r
127         verify(3456.5, "0,000.##", sym, "3|456S5");\r
128     }\r
129     \r
130     /** helper functions**/\r
131     public void verify(double value, String pattern, DecimalFormatSymbols sym, String expected) {\r
132         DecimalFormat df = new DecimalFormat(pattern, sym);\r
133         StringBuffer buffer = new StringBuffer("");\r
134         FieldPosition pos = new FieldPosition(-1);\r
135         buffer = df.format(value, buffer, pos);\r
136         if(!buffer.toString().equals(expected)){\r
137             errln("ERROR: format failed after setSymbols()\n Expected" + \r
138                 expected + ", Got " + buffer);\r
139         }\r
140     }\r
141 }