/********************************************************************
 * COPYRIGHT: 
 * Copyright (c) 1997-2003, International Business Machines Corporation and
 * others. All Rights Reserved.
 ********************************************************************/

#ifndef __IntlCalendarTest__
#define __IntlCalendarTest__
 
#include "unicode/utypes.h"

#if !UCONFIG_NO_FORMATTING

#include "unicode/calendar.h"
#include "unicode/smpdtfmt.h"
#include "caltztst.h"

class IntlCalendarTest: public CalendarTimeZoneTest {
public:
    // IntlTest override
    void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par );
public:
    /** 
     * Confirm that the registered calendars have the correct type. 
     */
    void TestTypes(void);

    void TestBuddhist(void);

 protected:
    void quasiGregorianTest(Calendar& cal, const Locale& gregoLocale, const int32_t *data);
 
public: // package
    // internal routine for checking date
    static UnicodeString value(Calendar* calendar);
 
};

#endif /* #if !UCONFIG_NO_FORMATTING */
 
#endif // __IntlCalendarTest__
