You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.8 KiB
68 lines
1.8 KiB
4 months ago
|
// © 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
|