]> git.saurik.com Git - apple/icu.git/blob - icuSources/test/intltest/apicoll.h
ICU-6.2.6.tar.gz
[apple/icu.git] / icuSources / test / intltest / apicoll.h
1 /***********************************************************************
2 * COPYRIGHT:
3 * Copyright (c) 1997-2004, International Business Machines Corporation
4 * and others. All Rights Reserved.
5 ***********************************************************************/
6
7 /**
8 * CollationAPITest is a third level test class. This test performs API
9 * related tests for the Collation framework.
10 */
11
12 #ifndef _APICOLL
13 #define _APICOLL
14
15 #include "unicode/utypes.h"
16
17 #if !UCONFIG_NO_COLLATION
18
19 #include "unicode/tblcoll.h"
20 #include "tscoll.h"
21
22 class CollationAPITest: public IntlTestCollator {
23 public:
24 void runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par = NULL */);
25 void doAssert(UBool condition, const char *message);
26
27 /**
28 * This tests the properties of a collator object.
29 * - constructor/destructor
30 * - factory method createInstance
31 * - compare and getCollationKey
32 * - get/set decomposition mode and comparison level
33 * - displayable name in the desired locale
34 */
35 void TestProperty(/* char* par */);
36
37 /**
38 * This tests the RuleBasedCollator
39 * - constructor/destructor
40 * - getRules
41 */
42 void TestRuleBasedColl(/* char* par */);
43
44 /**
45 * This tests the RuleBasedCollator
46 * - getRules
47 */
48 void TestRules(/* char* par */);
49
50 /**
51 * Tests decomposition setting
52 */
53 void TestDecomposition();
54
55 /**
56 * SafeClone test
57 */
58 void TestSafeClone();
59
60 /**
61 * This tests the properties of a rule based collator object.
62 * - constructor/destructor
63 * - == and != operators
64 * - clone and copy
65 * - collation rules access
66 */
67 void TestOperators(/* char* par */);
68
69 /**
70 * This tests the duplication of a collator object.
71 */
72 void TestDuplicate(/* char* par */);
73
74 /**
75 * This tests the comparison convenience methods of a collator object.
76 * - greater than
77 * - greater than or equal to
78 * - equal to
79 */
80 void TestCompare(/* char* par */);
81
82 /**
83 * This tests the hashCode method of a collator object.
84 */
85 void TestHashCode(/* char* par */);
86
87 /**
88 * This tests the collation key related APIs.
89 * - constructor/destructor
90 * - Collator::getCollationKey
91 * - == and != operators
92 * - comparison between collation keys
93 * - creating collation key with a byte array and vice versa
94 */
95 void TestCollationKey(/* char* par */);
96
97 /**
98 * This tests the CollationElementIterator related APIs.
99 * - creation of a CollationElementIterator object
100 * - == and != operators
101 * - iterating forward
102 * - reseting the iterator index
103 * - requesting the order properties(primary, secondary or tertiary)
104 */
105 void TestElemIter(/* char* par */);
106
107 /**
108 * This tests the list the all available locales.
109 */
110 void TestGetAll(/* char* par */);
111
112 /**
113 * This tests the sort keys generated by collator
114 */
115 void TestSortKey();
116
117 /**
118 * This tests getMaxExpansion
119 */
120 void TestMaxExpansion();
121
122 /**
123 * Tests the retrieval of names given a locale
124 */
125 void TestDisplayName();
126
127 /**
128 * Tests the collator attributes
129 */
130 void TestAttribute();
131
132 /**
133 * Tests the setters and getters of variable top
134 */
135 void TestVariableTopSetting();
136
137 /**
138 * Tests GetLocale for a Collator
139 */
140 void TestGetLocale();
141
142 /**
143 * Tests bounds API
144 */
145 void TestBounds();
146
147 /**
148 * Tests getTailoredSet API
149 */
150 void TestGetTailoredSet();
151
152 /**
153 * Tests the subclassability
154 */
155 void TestSubclass();
156
157 /**
158 * Tests the dynamic and static ids of collation classes
159 */
160 void TestUClassID();
161
162 /**
163 * Test NULL
164 */
165 void TestNULLCharTailoring();
166
167 private:
168 // If this is too small for the test data, just increase it.
169 // Just don't make it too large, otherwise the executable will get too big
170 enum EToken_Len { MAX_TOKEN_LEN = 16 };
171
172 };
173
174 #endif /* #if !UCONFIG_NO_COLLATION */
175
176 #endif