| /******************************************************************** |
| * COPYRIGHT: |
| * Copyright (c) 2003-2008, International Business Machines Corporation |
| * and others. All Rights Reserved. |
| ******************************************************************** |
| * Calendar Case Test is a type of CalendarTest which compares the |
| * behavior of a calendar to a certain set of 'test cases', involving |
| * conversion between julian-day to fields and vice versa. |
| ********************************************************************/ |
| |
| #ifndef __CalendarCaseTest__ |
| #define __CalendarCaseTest__ |
| |
| #include "unicode/utypes.h" |
| |
| #if !UCONFIG_NO_FORMATTING |
| |
| #include "unicode/calendar.h" |
| #include "unicode/smpdtfmt.h" |
| #include "caltest.h" |
| |
| class CalendarCaseTest: public CalendarTest { |
| public: |
| virtual void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par ); |
| |
| /* Test case struct */ |
| struct TestCase { |
| double julian; // Julian Date |
| int32_t era; |
| int32_t year; |
| int32_t month; |
| int32_t day; |
| int32_t dayOfWeek; |
| int32_t hour; |
| int32_t min; |
| int32_t sec; |
| }; |
| |
| /** |
| * @param cases array of items to test. Terminate with a "-1" for era. |
| */ |
| void doTestCases(const TestCase *cases, Calendar *cal); |
| |
| private: |
| /** |
| * Utility function to test out a specific field |
| * @param cal calendar |
| * @param field which field |
| * @param value expected value |
| * @param status err status |
| * @return boolean indicating success (TRUE) or failure (FALSE) of the test. |
| */ |
| UBool checkField(Calendar *cal, UCalendarDateFields field, int32_t value, UErrorCode &status); |
| |
| private: |
| // test cases |
| void IslamicCivil(); |
| void Hebrew(); |
| void Indian(); |
| void Coptic(); |
| void Ethiopic(); |
| }; |
| |
| #endif |
| #endif |