1 /********************************************************************
2  * COPYRIGHT:
3  * Copyright (c) 1997-2012, International Business Machines Corporation and
4  * others. All Rights Reserved.
5  ********************************************************************/
6 /********************************************************************************
7 *
8 * File CAPITEST.H
9 *
10 * Modification History:
11 *        Name                     Description
12 *     Madhu Katragadda               Creation
13 *********************************************************************************/
14 /* C API TEST FOR CALENDAR */
15 #ifndef _CCALTST
16 #define _CCALTST
17 
18 #include "unicode/utypes.h"
19 
20 #if !UCONFIG_NO_FORMATTING
21 
22 #include "cintltst.h"
23 
24 
25     /**
26      * The function used to test the Calendar API
27      **/
28     static void TestCalendar(void);
29     /**
30      * The function used to test getMillis, setMillis, setDate and setDateTime functions extensively
31      **/
32     static void TestGetSetDateAPI(void);
33     /**
34      * This function is used to test and confirm the functioning of
35      * the calendar get and set functions of calendar fields.
36      **/
37     static void TestFieldGetSet(void);
38     /**
39      * Execute and test adding and rolling extensively.
40      **/
41     static void TestAddRollExtensive(void);
42     /**
43      *Testing the Limits for various Fields of Calendar
44      **/
45     static void TestGetLimits(void);
46     /**
47      * Test that the days of the week progress properly when add is called repeatedly
48      * for increments of 24 days.
49      **/
50     static void TestDOWProgression(void);
51     /**
52      * Confirm that the offset between local time and GMT behaves as expected.
53      **/
54     static void TestGMTvsLocal(void);
55     /**
56      * test subroutine used by TestGMTvsLocal()
57      */
58     static void testZones(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
59     /**
60      * Test getKeywordValuesForLocale API
61      */
62     static void TestGetKeywordValuesForLocale(void);
63     /**
64      * Test weekend-related APIs
65      */
66     static void TestWeekend(void);
67     /**
68      * Test ambiguous wall time
69      */
70     static void TestAmbiguousWallTime(void);
71 
72 /*Internal functions used*/
73     /**
74      * test subroutines used by TestAddRollExtensive()
75      **/
76     static void checkDate(UCalendar* c, int32_t y, int32_t m, int32_t d);
77 
78     static void checkDateTime(UCalendar* c, int32_t y, int32_t m, int32_t d,
79                             int32_t hr, int32_t min, int32_t sec, int32_t ms,
80                                                     UCalendarDateFields field);
81 
82     /**
83      * test subroutines used by TestGetSetDateAPI and TestFieldGetSet
84      **/
85     static void verify1(const char* msg, UCalendar* c, UDateFormat* dat, int32_t year, int32_t month, int32_t day);
86 
87     static void verify2(const char* msg, UCalendar* c, UDateFormat* dat, int32_t year, int32_t month, int32_t day,
88                                                                 int32_t hour, int32_t min, int32_t sec, int32_t am_pm);
89 
90 #endif /* #if !UCONFIG_NO_FORMATTING */
91 
92 #endif
93