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