]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_2_1-src/src/com/ibm/icu/dev/test/format/DateFormatMiscTests.java
icu4jsrc
[Dictionary.git] / jars / icu4j-4_2_1-src / src / com / ibm / icu / dev / test / format / DateFormatMiscTests.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 2001-2007, 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 : DateFormatMiscTests\r
10  * Source File: $ICU4CRoot/source/test/intltest/miscdtfm.cpp\r
11  **/\r
12 \r
13 package com.ibm.icu.dev.test.format;\r
14 \r
15 import com.ibm.icu.text.*;\r
16 \r
17 import java.text.FieldPosition;\r
18 import java.text.ParseException;\r
19 import java.util.Locale;\r
20 import java.util.Date;\r
21 \r
22 /** \r
23  * Performs miscellaneous tests for DateFormat, SimpleDateFormat, DateFormatSymbols\r
24  **/\r
25 public class DateFormatMiscTests extends com.ibm.icu.dev.test.TestFmwk {\r
26 \r
27     public static void main(String[] args) throws Exception{\r
28         new DateFormatMiscTests().run(args);\r
29     }\r
30     \r
31     /*\r
32      * @bug 4097450\r
33      */\r
34     public void Test4097450() {\r
35         //\r
36         // Date parse requiring 4 digit year.\r
37         //\r
38         String dstring[] = {\r
39             "97", "1997", "97", "1997", "01", "2001", "01", "2001",\r
40              "1", "1", "11", "11", "111", "111"}; \r
41     \r
42         String dformat[] = \r
43             {\r
44                 "yy", "yy", "yyyy", "yyyy", "yy", "yy", "yyyy", "yyyy", \r
45                 "yy", "yyyy", "yy", "yyyy", "yy", "yyyy"};         \r
46     \r
47         SimpleDateFormat formatter;\r
48         SimpleDateFormat resultFormatter = new SimpleDateFormat("yyyy");\r
49         logln("Format\tSource\tResult");\r
50         logln("-------\t-------\t-------");\r
51         for (int i = 0; i < dstring.length ; i++) {\r
52             log(dformat[i] + "\t" + dstring[i] + "\t");\r
53             formatter = new SimpleDateFormat(dformat[i]);\r
54             try {\r
55                 StringBuffer str = new StringBuffer("");\r
56                 FieldPosition pos = new FieldPosition(0);\r
57                 logln(resultFormatter.format(formatter.parse(dstring[i]), str, pos).toString()); \r
58             }\r
59             catch (ParseException exception) {\r
60                 errln("exception --> " + exception);\r
61             }\r
62             logln("");\r
63         }\r
64     }\r
65     \r
66     /* @Bug 4099975\r
67      * SimpleDateFormat constructor SimpleDateFormat(String, DateFormatSymbols)\r
68      * should clone the DateFormatSymbols parameter\r
69      */\r
70     public void Test4099975new() {\r
71         Date d = new Date();\r
72         //test SimpleDateFormat Constructor\r
73         {\r
74             DateFormatSymbols symbols = new DateFormatSymbols(Locale.US);\r
75             SimpleDateFormat df = new SimpleDateFormat("E hh:mm", symbols);\r
76             SimpleDateFormat dfClone = (SimpleDateFormat) df.clone();\r
77             \r
78             logln(df.toLocalizedPattern());\r
79             String s0 = df.format(d);\r
80             String s_dfClone = dfClone.format(d);\r
81             \r
82             symbols.setLocalPatternChars("abcdefghijklmonpqr"); // change value of field\r
83             logln(df.toLocalizedPattern());\r
84             String s1 = df.format(d);\r
85             \r
86             if (!s1.equals(s0) || !s1.equals(s_dfClone)) {\r
87                 errln("Constructor: the formats are not equal");\r
88             }\r
89             if (!df.equals(dfClone)) {\r
90                 errln("The Clone Object does not equal with the orignal source");\r
91             }\r
92         }\r
93         //test SimpleDateFormat.setDateFormatSymbols()\r
94         {\r
95             DateFormatSymbols symbols = new DateFormatSymbols(Locale.US);\r
96             SimpleDateFormat df = new SimpleDateFormat("E hh:mm");\r
97             df.setDateFormatSymbols(symbols);\r
98             SimpleDateFormat dfClone = (SimpleDateFormat) df.clone();\r
99             \r
100             logln(df.toLocalizedPattern());\r
101             String s0 = df.format(d);\r
102             String s_dfClone = dfClone.format(d);\r
103             \r
104             symbols.setLocalPatternChars("abcdefghijklmonpqr"); // change value of field\r
105             logln(df.toLocalizedPattern());\r
106             String s1 = df.format(d);\r
107             \r
108             if (!s1.equals(s0) || !s1.equals(s_dfClone)) {\r
109                 errln("setDateFormatSymbols: the formats are not equal");\r
110             }\r
111             if (!df.equals(dfClone)) {\r
112                 errln("The Clone Object does not equal with the orignal source");\r
113             }\r
114         }\r
115     }\r
116     \r
117     /*\r
118      * @bug 4117335\r
119      */\r
120     public void Test4117335() {\r
121         final String bc = "\u7D00\u5143\u524D";\r
122         final String ad = "\u897f\u66a6";\r
123         final String jstLong = "\u65e5\u672c\u6a19\u6e96\u6642";\r
124         final String jdtLong = "\u65e5\u672c\u590f\u6642\u9593";\r
125         final String jstShort = "JST";\r
126         final String jdtShort = "JDT";\r
127         final String tzID = "Asia/Tokyo";\r
128 \r
129         DateFormatSymbols symbols = new DateFormatSymbols(Locale.JAPAN);\r
130         final String[] eras = symbols.getEras();\r
131 \r
132         assertEquals("BC =", bc, eras[0]);\r
133         assertEquals("AD =", ad, eras[1]);\r
134 \r
135         // don't use hard-coded index!\r
136         final String zones[][] = symbols.getZoneStrings();\r
137         int index = -1;\r
138         for (int i = 0; i < zones.length; ++i) {\r
139             if (tzID.equals(zones[i][0])) {\r
140                 index = i;\r
141                 break;\r
142             }\r
143         }\r
144 \r
145         if (index == -1) {\r
146             errln("could not find " + tzID);\r
147         } else {\r
148             assertEquals("Long zone name = ", jstLong, zones[index][1]);\r
149             assertEquals("Short zone name = ", jstShort, zones[index][2]);\r
150             assertEquals("Long zone name (3) = ", jdtLong, zones[index][3]);\r
151             assertEquals("Short zone name (4) = ", jdtShort, zones[index][4]);\r
152         }\r
153     }\r
154 }\r