| OLD | NEW |
| (Empty) |
| 1 /*********************************************************************** | |
| 2 * Copyright (c) 1997-2014, International Business Machines Corporation | |
| 3 * and others. All Rights Reserved. | |
| 4 ***********************************************************************/ | |
| 5 | |
| 6 #ifndef __CalendarTest__ | |
| 7 #define __CalendarTest__ | |
| 8 | |
| 9 #include "unicode/utypes.h" | |
| 10 | |
| 11 #if !UCONFIG_NO_FORMATTING | |
| 12 | |
| 13 #include "unicode/calendar.h" | |
| 14 #include "unicode/smpdtfmt.h" | |
| 15 #include "caltztst.h" | |
| 16 | |
| 17 class CalendarTest: public CalendarTimeZoneTest { | |
| 18 public: | |
| 19 // IntlTest override | |
| 20 void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par
); | |
| 21 public: | |
| 22 /** | |
| 23 * This test confirms the correct behavior of add when incrementing | |
| 24 * through subsequent days. | |
| 25 */ | |
| 26 virtual void TestRog(void); | |
| 27 /** | |
| 28 * Test the handling of the day of the week, checking for correctness and | |
| 29 * for correct minimum and maximum values. | |
| 30 */ | |
| 31 virtual void TestDOW943(void); | |
| 32 /** | |
| 33 * test subroutine use by TestDOW943 | |
| 34 */ | |
| 35 void dowTest(UBool lenient); | |
| 36 /** | |
| 37 * Confirm that cloned Calendar objects do not inadvertently share substruct
ures. | |
| 38 */ | |
| 39 virtual void TestClonesUnique908(void); | |
| 40 /** | |
| 41 * Confirm that the Gregorian cutoff value works as advertised. | |
| 42 */ | |
| 43 virtual void TestGregorianChange768(void); | |
| 44 /** | |
| 45 * Confirm the functioning of the field disambiguation algorithm. | |
| 46 */ | |
| 47 virtual void TestDisambiguation765(void); | |
| 48 /** | |
| 49 * Test various API methods for API completeness. | |
| 50 */ | |
| 51 virtual void TestGenericAPI(void); // New to C++ -- needs to be back ported
to Java | |
| 52 | |
| 53 virtual void TestWOY(void); | |
| 54 | |
| 55 virtual void TestDebug(void); | |
| 56 | |
| 57 public: // package | |
| 58 /** | |
| 59 * test subroutine used by TestDisambiguation765 | |
| 60 */ | |
| 61 virtual void verify765(const UnicodeString& msg, Calendar* c, int32_t year,
int32_t month, int32_t day); | |
| 62 /** | |
| 63 * test subroutine used by TestDisambiguation765 | |
| 64 */ | |
| 65 virtual void verify765(const UnicodeString& msg/*, IllegalArgumentException
e*/, UErrorCode status); | |
| 66 | |
| 67 public: | |
| 68 /** | |
| 69 * Confirm that the offset between local time and GMT behaves as expected. | |
| 70 */ | |
| 71 virtual void TestGMTvsLocal4064654(void); | |
| 72 | |
| 73 public: // package | |
| 74 /** | |
| 75 * test subroutine used by TestGMTvsLocal4064654 | |
| 76 */ | |
| 77 virtual void test4064654(int32_t yr, int32_t mo, int32_t dt, int32_t hr, int
32_t mn, int32_t sc); | |
| 78 | |
| 79 public: | |
| 80 /** | |
| 81 * The operations of adding and setting should not exhibit pathological | |
| 82 * dependence on the order of operations. This test checks for this. | |
| 83 */ | |
| 84 virtual void TestAddSetOrder621(void); | |
| 85 /** | |
| 86 * Confirm that adding to various fields works. | |
| 87 */ | |
| 88 virtual void TestAdd520(void); | |
| 89 /** | |
| 90 * Execute and test adding and rolling in GregorianCalendar extensively. | |
| 91 */ | |
| 92 virtual void TestAddRollExtensive(void); | |
| 93 | |
| 94 public: // package | |
| 95 // internal utility routine for checking date | |
| 96 virtual void check520(Calendar* c, | |
| 97 int32_t y, int32_t m, int32_t d, | |
| 98 int32_t hr, int32_t min, int32_t sec, | |
| 99 int32_t ms, UCalendarDateFields field); | |
| 100 | |
| 101 virtual void check520(Calendar* c, | |
| 102 int32_t y, int32_t m, int32_t d); | |
| 103 | |
| 104 public: | |
| 105 /** | |
| 106 * Test that setting of fields works. In particular, make sure that all ins
tances | |
| 107 * of GregorianCalendar don't share a static instance of the fields array. | |
| 108 */ | |
| 109 virtual void TestFieldSet4781(void); | |
| 110 /* virtual void TestSerialize337(); | |
| 111 | |
| 112 public: // package | |
| 113 static UnicodeString& PREFIX; | |
| 114 static UnicodeString& POSTFIX; | |
| 115 static UnicodeString& FILENAME; | |
| 116 */ | |
| 117 public: | |
| 118 /** | |
| 119 * Verify that the seconds of a Calendar can be zeroed out through the | |
| 120 * expected sequence of operations. | |
| 121 */ | |
| 122 virtual void TestSecondsZero121(void); | |
| 123 /** | |
| 124 * Verify that a specific sequence of adding and setting works as expected; | |
| 125 * it should not vary depending on when and whether the get method is | |
| 126 * called. | |
| 127 */ | |
| 128 virtual void TestAddSetGet0610(void); | |
| 129 | |
| 130 public: // package | |
| 131 // internal routine for checking date | |
| 132 static UnicodeString value(Calendar* calendar); | |
| 133 | |
| 134 public: | |
| 135 /** | |
| 136 * Verify that various fields on a known date are set correctly. | |
| 137 */ | |
| 138 virtual void TestFields060(void); | |
| 139 | |
| 140 public: // package | |
| 141 static int32_t EXPECTED_FIELDS[]; | |
| 142 static const int32_t EXPECTED_FIELDS_length; | |
| 143 | |
| 144 public: | |
| 145 /** | |
| 146 * Verify that various fields on a known date are set correctly. In this | |
| 147 * case, the start of the epoch (January 1 1970). | |
| 148 */ | |
| 149 virtual void TestEpochStartFields(void); | |
| 150 | |
| 151 public: // package | |
| 152 static int32_t EPOCH_FIELDS[]; | |
| 153 | |
| 154 public: | |
| 155 /** | |
| 156 * Test that the days of the week progress properly when add is called repea
tedly | |
| 157 * for increments of 24 days. | |
| 158 */ | |
| 159 virtual void TestDOWProgression(void); | |
| 160 /** | |
| 161 * Test newly added fields - DOW_LOCAL and YEAR_WOY | |
| 162 */ | |
| 163 virtual void TestDOW_LOCALandYEAR_WOY(void); | |
| 164 // test subroutine used by TestDOW_LOCALandYEAR_WOY | |
| 165 virtual void doYEAR_WOYLoop(Calendar *cal, | |
| 166 SimpleDateFormat *sdf, int32_t times, UErrorCode& status); | |
| 167 // test subroutine used by TestDOW_LOCALandYEAR_WOY | |
| 168 virtual void loop_addroll(Calendar *cal, /*SimpleDateFormat *sdf, */ | |
| 169 int times, UCalendarDateFields field, UCalendarDateFields field2, | |
| 170 UErrorCode& errorCode); | |
| 171 | |
| 172 void TestYWOY(void); | |
| 173 void TestJD(void); | |
| 174 | |
| 175 void yearAddTest(Calendar& cal, UErrorCode& status); | |
| 176 | |
| 177 public: // package | |
| 178 // test subroutine use by TestDOWProgression | |
| 179 virtual void marchByDelta(Calendar* cal, int32_t delta); | |
| 180 | |
| 181 public: | |
| 182 // for other tests' use | |
| 183 static UnicodeString fieldName(UCalendarDateFields f); | |
| 184 static UnicodeString calToStr(const Calendar & cal); | |
| 185 | |
| 186 // List of non-installed locales with interesting calendars | |
| 187 | |
| 188 /** | |
| 189 * @return the count of 'other' locales to test | |
| 190 */ | |
| 191 static int32_t testLocaleCount(); | |
| 192 | |
| 193 /** | |
| 194 * @param i index of 'other' locale to return | |
| 195 * @return locale ID | |
| 196 */ | |
| 197 static const char* testLocaleID(int32_t i); | |
| 198 | |
| 199 /** | |
| 200 * Clone the specified calendar, and determine its earliest supported date | |
| 201 * by setting the extended year to the minimum value. | |
| 202 * @param cal Calendar (will be cloned) | |
| 203 * @param isGregorian output: returns 'TRUE' if the calendar's class is Greg
orianCalendar | |
| 204 * @param status error code | |
| 205 */ | |
| 206 static UDate minDateOfCalendar(const Calendar& cal, UBool &isGregorian, UErr
orCode& status); | |
| 207 | |
| 208 /** | |
| 209 * Construct a calendar of the specified locale, and determine its earliest
supported date | |
| 210 * by setting the extended year to the minimum value. | |
| 211 * @param locale locale of calendar to check | |
| 212 * @param isGregorian output: returns 'TRUE' if the calendar's class is Greg
orianCalendar | |
| 213 * @param status error code | |
| 214 */ | |
| 215 static UDate minDateOfCalendar(const Locale& locale, UBool &isGregorian, UEr
rorCode& status); | |
| 216 | |
| 217 // internal - for other test use | |
| 218 public: | |
| 219 void Test6703(void); | |
| 220 void Test3785(void); | |
| 221 void Test1624(void); | |
| 222 void TestIslamicUmAlQura(void); | |
| 223 void TestIslamicTabularDates(void); | |
| 224 | |
| 225 /** | |
| 226 * Test the time stamp array recalculation during heavy Calendar usage | |
| 227 */ | |
| 228 void TestTimeStamp(void); | |
| 229 /** | |
| 230 * Test the ISO8601 calendar type | |
| 231 */ | |
| 232 void TestISO8601(void); | |
| 233 | |
| 234 /** | |
| 235 * Test cases for [set|get][Repeated|Skipped]WallTimeOption | |
| 236 */ | |
| 237 void TestAmbiguousWallTimeAPIs(void); | |
| 238 void TestRepeatedWallTime(void); | |
| 239 void TestSkippedWallTime(void); | |
| 240 | |
| 241 void TestCloneLocale(void); | |
| 242 | |
| 243 void TestHebrewMonthValidation(void); | |
| 244 | |
| 245 /* | |
| 246 * utility methods for TestIslamicUmAlQura | |
| 247 */ | |
| 248 void setAndTestCalendar(Calendar* cal, int32_t initMonth, int32_t initDay, i
nt32_t initYear, UErrorCode& status); | |
| 249 void setAndTestWholeYear(Calendar* cal, int32_t startYear, UErrorCode& statu
s); | |
| 250 | |
| 251 void TestWeekData(void); | |
| 252 | |
| 253 void TestAddAcrossZoneTransition(void); | |
| 254 }; | |
| 255 | |
| 256 #endif /* #if !UCONFIG_NO_FORMATTING */ | |
| 257 | |
| 258 #endif // __CalendarTest__ | |
| OLD | NEW |