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