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