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