]> git.saurik.com Git - apple/icu.git/blob - icuSources/test/intltest/mnkytst.h
ICU-400.42.tar.gz
[apple/icu.git] / icuSources / test / intltest / mnkytst.h
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