Home | History | Annotate | Download | only in intltest
      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