// Copyright (C) 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** * 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