]> git.saurik.com Git - apple/icu.git/blob - icuSources/test/intltest/itercoll.h
ICU-57166.0.1.tar.gz
[apple/icu.git] / icuSources / test / intltest / itercoll.h
1 /********************************************************************
2 * COPYRIGHT:
3 * Copyright (c) 1997-2001, International Business Machines Corporation and
4 * others. All Rights Reserved.
5 ********************************************************************/
6
7 /**
8 * Collation Iterator tests.
9 * (Let me reiterate my position...)
10 */
11
12 #ifndef _ITERCOLL
13 #define _ITERCOLL
14
15 #include "unicode/utypes.h"
16
17 #if !UCONFIG_NO_COLLATION
18
19 #include "unicode/tblcoll.h"
20 #include "unicode/coleitr.h"
21 #include "tscoll.h"
22
23 class CollationIteratorTest: public IntlTestCollator
24 {
25 public:
26
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 CollationIteratorTest();
32 virtual ~CollationIteratorTest();
33
34 void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par = NULL);
35
36 /**
37 * Test that results from CollationElementIterator.next is equivalent to
38 * the reversed results from CollationElementIterator.previous, for the set
39 * of BMP characters.
40 */
41 void TestUnicodeChar();
42
43 /**
44 * Test for CollationElementIterator.previous()
45 *
46 * @bug 4108758 - Make sure it works with contracting characters
47 *
48 */
49 void TestPrevious(/* char* par */);
50
51 /**
52 * Test for getOffset() and setOffset()
53 */
54 void TestOffset(/* char* par */);
55
56 /**
57 * Test for setText()
58 */
59 void TestSetText(/* char* par */);
60
61 /** @bug 4108762
62 * Test for getMaxExpansion()
63 */
64 void TestMaxExpansion(/* char* par */);
65
66 /*
67 * @bug 4157299
68 */
69 void TestClearBuffers(/* char* par */);
70
71 /**
72 * Testing the assignment operator
73 */
74 void TestAssignment();
75
76 /**
77 * Testing the constructors
78 */
79 void TestConstructors();
80
81 /**
82 * Testing the strength order functionality
83 */
84 void TestStrengthOrder();
85
86 //------------------------------------------------------------------------
87 // Internal utilities
88 //
89
90 private:
91
92 struct ExpansionRecord
93 {
94 UChar character;
95 int32_t count;
96 };
97
98 /**
99 * Verify that getMaxExpansion works on a given set of collation rules
100 */
101 void verifyExpansion(UnicodeString rules, ExpansionRecord tests[], int32_t testCount);
102
103 /**
104 * Return a string containing all of the collation orders
105 * returned by calls to next on the specified iterator
106 */
107 UnicodeString &orderString(CollationElementIterator &iter, UnicodeString &target);
108
109 void assertEqual(CollationElementIterator &i1, CollationElementIterator &i2);
110
111 RuleBasedCollator *en_us;
112 const UnicodeString test1;
113 const UnicodeString test2;
114
115 };
116
117 #endif /* #if !UCONFIG_NO_COLLATION */
118
119 #endif