• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (C) 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