OLD | NEW |
| (Empty) |
1 /******************************************************************** | |
2 * COPYRIGHT: | |
3 * Copyright (c) 1997-2014, International Business Machines Corporation and | |
4 * others. All Rights Reserved. | |
5 ********************************************************************/ | |
6 | |
7 #ifndef _DATEFORMATTEST_ | |
8 #define _DATEFORMATTEST_ | |
9 | |
10 #include "unicode/utypes.h" | |
11 | |
12 #if !UCONFIG_NO_FORMATTING | |
13 | |
14 #include "unicode/datefmt.h" | |
15 #include "unicode/smpdtfmt.h" | |
16 #include "caltztst.h" | |
17 | |
18 /** | |
19 * Performs many different tests for DateFormat and SimpleDateFormat | |
20 **/ | |
21 class DateFormatTest: public CalendarTimeZoneTest { | |
22 // IntlTest override | |
23 void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par
); | |
24 public: | |
25 /** | |
26 * Verify that patterns have the correct values and could produce | |
27 * the DateFormat instances that contain the correct localized patterns. | |
28 */ | |
29 void TestPatterns(); | |
30 /** | |
31 * "Test written by Wally Wedel and emailed to me." | |
32 * Test handling of timezone offsets | |
33 **/ | |
34 virtual void TestWallyWedel(void); | |
35 /** | |
36 * Test operator== | |
37 */ | |
38 virtual void TestEquals(void); | |
39 /** | |
40 * Test the parsing of 2-digit years. | |
41 */ | |
42 virtual void TestTwoDigitYearDSTParse(void); | |
43 | |
44 public: // package | |
45 // internal utility routine (genrates escape sequences for characters) | |
46 static UnicodeString& escape(UnicodeString& s); | |
47 | |
48 public: | |
49 /** | |
50 * Verify that returned field position indices are correct. | |
51 */ | |
52 void TestFieldPosition(void); | |
53 | |
54 void TestGeneral(); | |
55 | |
56 public: // package | |
57 // internal utility function | |
58 static void getFieldText(DateFormat* df, int32_t field, UDate date, UnicodeS
tring& str); | |
59 | |
60 public: | |
61 /** | |
62 * Verify that strings which contain incomplete specifications are parsed | |
63 * correctly. In some instances, this means not being parsed at all, and | |
64 * returning an appropriate error. | |
65 */ | |
66 virtual void TestPartialParse994(void); | |
67 | |
68 public: // package | |
69 // internal test subroutine, used by TestPartialParse994 | |
70 virtual void tryPat994(SimpleDateFormat* format, const char* pat, const char
* str, UDate expected); | |
71 | |
72 public: | |
73 /** | |
74 * Verify the behavior of patterns in which digits for different fields run
together | |
75 * without intervening separators. | |
76 */ | |
77 virtual void TestRunTogetherPattern985(void); | |
78 /** | |
79 * Verify the behavior of patterns in which digits for different fields run
together | |
80 * without intervening separators. | |
81 */ | |
82 virtual void TestRunTogetherPattern917(void); | |
83 | |
84 public: // package | |
85 // internal test subroutine, used by TestRunTogetherPattern917 | |
86 virtual void testIt917(SimpleDateFormat* fmt, UnicodeString& str, UDate expe
cted); | |
87 | |
88 public: | |
89 /** | |
90 * Verify the handling of Czech June and July, which have the unique attribu
te that | |
91 * one is a proper prefix substring of the other. | |
92 */ | |
93 virtual void TestCzechMonths459(void); | |
94 /** | |
95 * Test the handling of 'D' in patterns. | |
96 */ | |
97 virtual void TestLetterDPattern212(void); | |
98 /** | |
99 * Test the day of year pattern. | |
100 */ | |
101 virtual void TestDayOfYearPattern195(void); | |
102 | |
103 public: // package | |
104 // interl test subroutine, used by TestDayOfYearPattern195 | |
105 virtual void tryPattern(SimpleDateFormat& sdf, UDate d, const char* pattern,
UDate expected); | |
106 | |
107 public: | |
108 /** | |
109 * Test the handling of single quotes in patterns. | |
110 */ | |
111 virtual void TestQuotePattern161(void); | |
112 /** | |
113 * Verify the correct behavior when handling invalid input strings. | |
114 */ | |
115 virtual void TestBadInput135(void); | |
116 | |
117 public: | |
118 /** | |
119 * Verify the correct behavior when parsing an array of inputs against an | |
120 * array of patterns, with known results. The results are encoded after | |
121 * the input strings in each row. | |
122 */ | |
123 virtual void TestBadInput135a(void); | |
124 /** | |
125 * Test the parsing of two-digit years. | |
126 */ | |
127 virtual void TestTwoDigitYear(void); | |
128 | |
129 public: // package | |
130 // internal test subroutine, used by TestTwoDigitYear | |
131 virtual void parse2DigitYear(DateFormat& fmt, const char* str, UDate expecte
d); | |
132 | |
133 public: | |
134 /** | |
135 * Test the formatting of time zones. | |
136 */ | |
137 virtual void TestDateFormatZone061(void); | |
138 /** | |
139 * Further test the formatting of time zones. | |
140 */ | |
141 virtual void TestDateFormatZone146(void); | |
142 | |
143 void TestTimeZoneStringsAPI(void); | |
144 | |
145 void TestGMTParsing(void); | |
146 | |
147 public: // package | |
148 /** | |
149 * Test the formatting of dates in different locales. | |
150 */ | |
151 virtual void TestLocaleDateFormat(void); | |
152 | |
153 virtual void TestFormattingLocaleTimeSeparator(void); | |
154 | |
155 virtual void TestDateFormatCalendar(void); | |
156 | |
157 virtual void TestSpaceParsing(void); | |
158 | |
159 void TestExactCountFormat(void); | |
160 | |
161 void TestWhiteSpaceParsing(void); | |
162 | |
163 void TestInvalidPattern(void); | |
164 | |
165 void TestGreekMay(void); | |
166 | |
167 void TestGenericTime(void); | |
168 | |
169 void TestGenericTimeZoneOrder(void); | |
170 | |
171 void Test6338(void); | |
172 | |
173 void Test6726(void); | |
174 | |
175 void Test6880(void); | |
176 | |
177 void TestISOEra(void); | |
178 | |
179 void TestFormalChineseDate(void); | |
180 | |
181 void TestStandAloneGMTParse(void); | |
182 | |
183 void TestParsePosition(void); | |
184 | |
185 void TestMonthPatterns(void); | |
186 | |
187 void TestContext(void); | |
188 | |
189 void TestNonGregoFmtParse(void); | |
190 | |
191 public: | |
192 /** | |
193 * Test host-specific formatting. | |
194 */ | |
195 void TestHost(void); | |
196 | |
197 public: | |
198 /** | |
199 * Test patterns added in CLDR 1.4, CLDR 23 | |
200 */ | |
201 void TestEras(void); | |
202 | |
203 void TestNarrowNames(void); | |
204 | |
205 void TestShortDays(void); | |
206 | |
207 void TestStandAloneDays(void); | |
208 | |
209 void TestStandAloneMonths(void); | |
210 | |
211 void TestQuarters(void); | |
212 | |
213 void TestZTimeZoneParsing(void); | |
214 | |
215 void TestRelativeClone(void); | |
216 | |
217 void TestHostClone(void); | |
218 | |
219 void TestHebrewClone(void); | |
220 | |
221 void TestDateFormatSymbolsClone(void); | |
222 | |
223 void TestTimeZoneDisplayName(void); | |
224 | |
225 void TestRoundtripWithCalendar(void); | |
226 | |
227 public: | |
228 /*** | |
229 * Test Relative Dates | |
230 */ | |
231 void TestRelative(void); | |
232 /* void TestRelativeError(void); | |
233 void TestRelativeOther(void); | |
234 */ | |
235 | |
236 void TestDotAndAtLeniency(); | |
237 | |
238 void TestDateFormatLeniency(); | |
239 | |
240 void TestParseMultiPatternMatch(); | |
241 | |
242 void TestParseLeniencyAPIs(); | |
243 | |
244 // test override NumberFormat | |
245 void TestNumberFormatOverride(); | |
246 void TestCreateInstanceForSkeleton(); | |
247 void TestCreateInstanceForSkeletonDefault(); | |
248 void TestCreateInstanceForSkeletonWithCalendar(); | |
249 void TestDFSCreateForLocaleNonGregorianLocale(); | |
250 void TestDFSCreateForLocaleWithCalendarInLocale(); | |
251 void TestChangeCalendar(); | |
252 | |
253 private: | |
254 UBool showParse(DateFormat &format, const UnicodeString &formattedString); | |
255 | |
256 public: | |
257 /** | |
258 * Test parsing a number as a string | |
259 */ | |
260 void TestNumberAsStringParsing(void); | |
261 | |
262 private: | |
263 void TestRelative(int daysdelta, | |
264 const Locale& loc, | |
265 const char *expectChars); | |
266 | |
267 private: | |
268 void expectParse(const char** data, int32_t data_length, | |
269 const Locale& locale); | |
270 | |
271 void expect(const char** data, int32_t data_length, | |
272 const Locale& loc); | |
273 | |
274 void expectFormat(const char **data, int32_t data_length, | |
275 const Locale &locale); | |
276 }; | |
277 | |
278 #endif /* #if !UCONFIG_NO_FORMATTING */ | |
279 | |
280 #endif // _DATEFORMATTEST_ | |
281 //eof | |
OLD | NEW |