]>
Commit | Line | Data |
---|---|---|
b75a7d8f A |
1 | /******************************************************************** |
2 | * COPYRIGHT: | |
374ca955 | 3 | * Copyright (c) 1997-2004, International Business Machines Corporation and |
b75a7d8f A |
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 DataeFormat 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 | * "Test written by Wally Wedel and emailed to me." | |
27 | * Test handling of timezone offsets | |
28 | **/ | |
29 | virtual void TestWallyWedel(void); | |
30 | /** | |
31 | * Test operator== | |
32 | */ | |
33 | virtual void TestEquals(void); | |
34 | /** | |
35 | * Test the parsing of 2-digit years. | |
36 | */ | |
37 | virtual void TestTwoDigitYearDSTParse(void); | |
38 | ||
39 | public: // package | |
40 | // internal utility routine (genrates escape sequences for characters) | |
41 | static UnicodeString& escape(UnicodeString& s); | |
b75a7d8f A |
42 | |
43 | public: | |
44 | /** | |
45 | * Verify that returned field position indices are correct. | |
46 | */ | |
374ca955 | 47 | void TestFieldPosition(void); |
b75a7d8f | 48 | |
374ca955 A |
49 | void TestGeneral(); |
50 | ||
b75a7d8f A |
51 | public: // package |
52 | // internal utility function | |
53 | static void getFieldText(DateFormat* df, int32_t field, UDate date, UnicodeString& str); | |
54 | ||
55 | public: | |
56 | /** | |
57 | * Verify that strings which contain incomplete specifications are parsed | |
58 | * correctly. In some instances, this means not being parsed at all, and | |
59 | * returning an appropriate error. | |
60 | */ | |
61 | virtual void TestPartialParse994(void); | |
62 | ||
63 | public: // package | |
64 | // internal test subroutine, used by TestPartialParse994 | |
65 | virtual void tryPat994(SimpleDateFormat* format, const char* pat, const char* str, UDate expected); | |
66 | ||
67 | public: | |
68 | /** | |
69 | * Verify the behavior of patterns in which digits for different fields run together | |
70 | * without intervening separators. | |
71 | */ | |
72 | virtual void TestRunTogetherPattern985(void); | |
73 | /** | |
74 | * Verify the behavior of patterns in which digits for different fields run together | |
75 | * without intervening separators. | |
76 | */ | |
77 | virtual void TestRunTogetherPattern917(void); | |
78 | ||
79 | public: // package | |
80 | // internal test subroutine, used by TestRunTogetherPattern917 | |
81 | virtual void testIt917(SimpleDateFormat* fmt, UnicodeString& str, UDate expected); | |
82 | ||
83 | public: | |
84 | /** | |
85 | * Verify the handling of Czech June and July, which have the unique attribute that | |
86 | * one is a proper prefix substring of the other. | |
87 | */ | |
88 | virtual void TestCzechMonths459(void); | |
89 | /** | |
90 | * Test the handling of 'D' in patterns. | |
91 | */ | |
92 | virtual void TestLetterDPattern212(void); | |
93 | /** | |
94 | * Test the day of year pattern. | |
95 | */ | |
96 | virtual void TestDayOfYearPattern195(void); | |
97 | ||
98 | public: // package | |
99 | // interl test subroutine, used by TestDayOfYearPattern195 | |
100 | virtual void tryPattern(SimpleDateFormat& sdf, UDate d, const char* pattern, UDate expected); | |
101 | ||
102 | public: | |
103 | /** | |
104 | * Test the handling of single quotes in patterns. | |
105 | */ | |
106 | virtual void TestQuotePattern161(void); | |
107 | /** | |
108 | * Verify the correct behavior when handling invalid input strings. | |
109 | */ | |
110 | virtual void TestBadInput135(void); | |
111 | ||
112 | private: | |
113 | static const char* parseFormats[]; | |
114 | static const char* inputStrings[]; | |
115 | ||
b75a7d8f A |
116 | public: |
117 | /** | |
118 | * Verify the correct behavior when parsing an array of inputs against an | |
119 | * array of patterns, with known results. The results are encoded after | |
120 | * the input strings in each row. | |
121 | */ | |
122 | virtual void TestBadInput135a(void); | |
123 | /** | |
124 | * Test the parsing of two-digit years. | |
125 | */ | |
126 | virtual void TestTwoDigitYear(void); | |
127 | ||
128 | public: // package | |
129 | // internal test subroutine, used by TestTwoDigitYear | |
130 | virtual void parse2DigitYear(DateFormat& fmt, const char* str, UDate expected); | |
131 | ||
132 | public: | |
133 | /** | |
134 | * Test the formatting of time zones. | |
135 | */ | |
136 | virtual void TestDateFormatZone061(void); | |
137 | /** | |
138 | * Further test the formatting of time zones. | |
139 | */ | |
140 | virtual void TestDateFormatZone146(void); | |
141 | ||
142 | public: // package | |
143 | /** | |
144 | * Test the formatting of dates in different locales. | |
145 | */ | |
146 | virtual void TestLocaleDateFormat(void); | |
147 | ||
148 | virtual void TestDateFormatCalendar(void); | |
149 | ||
150 | virtual void TestSpaceParsing(void); | |
151 | ||
152 | void TestExactCountFormat(void); | |
153 | ||
154 | void TestWhiteSpaceParsing(void); | |
155 | ||
374ca955 A |
156 | void TestInvalidPattern(void); |
157 | ||
158 | void TestGreekMay(void); | |
159 | ||
b75a7d8f A |
160 | private: |
161 | void expectParse(const char** data, int32_t data_length, | |
162 | const Locale& locale); | |
374ca955 A |
163 | |
164 | void expect(const char** data, int32_t data_length, | |
165 | const Locale& loc); | |
b75a7d8f A |
166 | }; |
167 | ||
168 | #endif /* #if !UCONFIG_NO_FORMATTING */ | |
169 | ||
170 | #endif // _DATEFORMATTEST_ | |
171 | //eof |