1 /******************************************************************** 2 * COPYRIGHT: 3 * Copyright (c) 1997-2003, International Business Machines Corporation and 4 * others. All Rights Reserved. 5 ********************************************************************/ 6 7 #ifndef _INTLTESTDATEFORMAT 8 #define _INTLTESTDATEFORMAT 9 10 #include "unicode/utypes.h" 11 12 #if !UCONFIG_NO_FORMATTING 13 14 #include "unicode/unistr.h" 15 #include "unicode/datefmt.h" 16 #include "intltest.h" 17 18 /** 19 * Performs some tests in many variations on DateFormat 20 **/ 21 class IntlTestDateFormat: public IntlTest { 22 void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); 23 24 private: 25 26 /** 27 * test DateFormat::getAvailableLocales 28 **/ 29 void testAvailableLocales(/* char* par */); 30 /** 31 * call testLocale for all locales 32 **/ 33 void monsterTest(/* char *par */); 34 35 /** 36 * call tryDate with variations, called by testLocale 37 **/ 38 void testFormat(/* char* par */); 39 /** 40 * perform tests using date and fFormat, called in many variations 41 **/ 42 void tryDate(UDate date); 43 /** 44 * call testFormat for different DateFormat::EStyle's, etc 45 **/ 46 void testLocale(/*char *par, */const Locale&, const UnicodeString&); 47 /** 48 * return a random number 49 **/ 50 double randDouble(void); 51 /** 52 * generate description for verbose test output 53 **/ 54 void describeTest(void); 55 56 DateFormat *fFormat; 57 UnicodeString fTestName; 58 int32_t fLimit; // How many iterations it should take to reach convergence 59 60 enum 61 { 62 // Values in milliseconds (== Date) 63 ONESECOND = 1000, 64 ONEMINUTE = 60 * ONESECOND, 65 ONEHOUR = 60 * ONEMINUTE, 66 ONEDAY = 24 * ONEHOUR 67 }; 68 static const double ONEYEAR; 69 enum EMode 70 { 71 GENERIC, 72 TIME, 73 DATE, 74 DATE_TIME 75 }; 76 public: 77 virtual ~IntlTestDateFormat(); 78 }; 79 80 #endif /* #if !UCONFIG_NO_FORMATTING */ 81 82 #endif 83