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