+namespace {
+
+struct TestCase {
+ const char *type;
+ UBool hasLeapMonth;
+ UDate actualTestStart;
+ int32_t actualTestEnd;
+};
+
+const UDate DEFAULT_START = 944006400000.0; // 1999-12-01T00:00Z
+const int32_t DEFAULT_END = -120; // Default for non-quick is run 2 minutes
+
+TestCase TestCases[] = {
+ {"gregorian", FALSE, DEFAULT_START, DEFAULT_END},
+ {"japanese", FALSE, 596937600000.0, DEFAULT_END}, // 1988-12-01T00:00Z, Showa 63
+ {"buddhist", FALSE, DEFAULT_START, DEFAULT_END},
+ {"roc", FALSE, DEFAULT_START, DEFAULT_END},
+ {"persian", FALSE, DEFAULT_START, DEFAULT_END},
+ {"islamic-civil", FALSE, DEFAULT_START, DEFAULT_END},
+ {"islamic", FALSE, DEFAULT_START, 800000}, // Approx. 2250 years from now, after which
+ // some rounding errors occur in Islamic calendar
+ {"hebrew", TRUE, DEFAULT_START, DEFAULT_END},
+ {"chinese", TRUE, DEFAULT_START, DEFAULT_END},
+ {"dangi", TRUE, DEFAULT_START, DEFAULT_END},
+ {"indian", FALSE, DEFAULT_START, DEFAULT_END},
+ {"coptic", FALSE, DEFAULT_START, DEFAULT_END},
+ {"ethiopic", FALSE, DEFAULT_START, DEFAULT_END},
+ {"ethiopic-amete-alem", FALSE, DEFAULT_START, DEFAULT_END}
+};
+
+struct {
+ int32_t fIndex;
+ UBool next (int32_t &rIndex) {
+ Mutex lock;
+ if (fIndex >= UPRV_LENGTHOF(TestCases)) {
+ return FALSE;
+ }
+ rIndex = fIndex++;
+ return TRUE;
+ }
+ void reset() {
+ fIndex = 0;
+ }
+} gTestCaseIterator;
+
+} // anonymous name space
+