]> git.saurik.com Git - apple/icu.git/blame - icuSources/test/intltest/apicoll.h
ICU-64243.0.1.tar.gz
[apple/icu.git] / icuSources / test / intltest / apicoll.h
CommitLineData
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
24class CollationAPITest: public IntlTestCollator {
25public:
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
178private:
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