Home | History | Annotate | Download | only in intltest
      1 //  2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html
      3 /********************************************************************
      4  * COPYRIGHT:
      5  * Copyright (c) 1997-2003, International Business Machines Corporation and
      6  * others. All Rights Reserved.
      7  ********************************************************************/
      8 
      9 /**
     10  * CollationMonkeyTest is a third level test class.  This tests the random
     11  * substrings of the default test strings to verify if the compare and
     12  * sort key algorithm works correctly.  For example, any string is always
     13  * less than the string itself appended with any character.
     14  */
     15 
     16 #ifndef _MNKYTST
     17 #define _MNKYTST
     18 
     19 #include "unicode/utypes.h"
     20 
     21 #if !UCONFIG_NO_COLLATION
     22 
     23 #include "tscoll.h"
     24 
     25 class CollationMonkeyTest: public IntlTestCollator {
     26 public:
     27     // If this is too small for the test data, just increase it.
     28     // Just don't make it too large, otherwise the executable will get too big
     29     enum EToken_Len { MAX_TOKEN_LEN = 16 };
     30 
     31     CollationMonkeyTest();
     32     virtual ~CollationMonkeyTest();
     33     void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
     34 
     35     // utility function used in tests, returns absolute value
     36     int32_t checkValue(int32_t value);
     37 
     38     // perform monkey tests using Collator::compare
     39     void TestCompare(/* char* par */);
     40 
     41     // perform monkey tests using CollationKey::compareTo
     42     void TestCollationKey(/* char* par */);
     43 
     44     void TestRules(/* char* par */);
     45 
     46 private:
     47     void report(UnicodeString& s, UnicodeString& t, int32_t result, int32_t revResult);
     48 
     49     const UnicodeString source;
     50 
     51     Collator *myCollator;
     52 };
     53 
     54 #endif /* #if !UCONFIG_NO_COLLATION */
     55 
     56 #endif
     57