]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/test/intltest/calcasts.h
ICU-6.2.4.tar.gz
[apple/icu.git] / icuSources / test / intltest / calcasts.h
diff --git a/icuSources/test/intltest/calcasts.h b/icuSources/test/intltest/calcasts.h
new file mode 100644 (file)
index 0000000..1f8e3c1
--- /dev/null
@@ -0,0 +1,62 @@
+/********************************************************************
+ * COPYRIGHT: 
+ * Copyright (c) 2003, 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();
+};
+
+#endif
+#endif