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 /**
      8  * CollationMonkeyTest is a third level test class.  This tests the random
      9  * substrings of the default test strings to verify if the compare and
     10  * sort key algorithm works correctly.  For example, any string is always
     11  * less than the string itself appended with any character.
     12  */
     13 
     14 #ifndef _MNKYTST
     15 #define _MNKYTST
     16 
     17 #include "unicode/utypes.h"
     18 
     19 #if !UCONFIG_NO_COLLATION
     20 
     21 #include "tscoll.h"
     22 
     23 class CollationMonkeyTest: public IntlTestCollator {
     24 public:
     25     // If this is too small for the test data, just increase it.
     26     // Just don't make it too large, otherwise the executable will get too big
     27     enum EToken_Len { MAX_TOKEN_LEN = 16 };
     28 
     29     CollationMonkeyTest();
     30     virtual ~CollationMonkeyTest();
     31     void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
     32 
     33     // utility function used in tests, returns absolute value
     34     int32_t checkValue(int32_t value);
     35 
     36     // perform monkey tests using Collator::compare
     37     void TestCompare(/* char* par */);
     38 
     39     // perform monkey tests using CollationKey::compareTo
     40     void TestCollationKey(/* char* par */);
     41 
     42     void TestRules(/* char* par */);
     43 
     44 private:
     45     void report(UnicodeString& s, UnicodeString& t, int32_t result, int32_t revResult);
     46 
     47     const UnicodeString source;
     48 
     49     Collator *myCollator;
     50 };
     51 
     52 #endif /* #if !UCONFIG_NO_COLLATION */
     53 
     54 #endif
     55