• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /********************************************************************
2  * COPYRIGHT:
3  * Copyright (c) 1997-2008,2011, International Business Machines Corporation and
4  * others. All Rights Reserved.
5  ********************************************************************/
6 /********************************************************************************
7 *
8 * File CITERTST.H
9 *
10 * Modification History:
11 *        Name                     Description
12 *     Madhu Katragadda            Converted to C
13 *********************************************************************************/
14 
15 /**
16  * Collation Iterator tests.
17  * (Let me reiterate my position...)
18  */
19 
20 #ifndef _CITERCOLLTST
21 #define _CITERCOLLTST
22 
23 #include "unicode/utypes.h"
24 
25 #if !UCONFIG_NO_COLLATION
26 
27 #include "unicode/ucol.h"
28 #include "unicode/ucoleitr.h"
29 #include "cintltst.h"
30 
31 #define MAX_TOKEN_LEN 16
32 
33 /**
34 * Test for CollationElementIterator previous and next for the whole set of
35 * unicode characters.
36 */
37 static void TestUnicodeChar(void);
38 /**
39 * Test for CollationElementIterator previous and next for the whole set of
40 * unicode characters with normalization on.
41 */
42 static void TestNormalizedUnicodeChar(void);
43 /**
44 * Test incremental normalization
45 */
46 static void TestNormalization(void);
47  /**
48  * Test for CollationElementIterator.previous()
49  *
50  * @bug 4108758 - Make sure it works with contracting characters
51  *
52  */
53 static void TestPrevious(void);
54 
55 /**
56  * Test for getOffset() and setOffset()
57  */
58 static void TestOffset(void);
59 /**
60  * Test for setText()
61  */
62 static void TestSetText(void);
63 /** @bug 4108762
64  * Test for getMaxExpansion()
65  */
66 static void TestMaxExpansion(void);
67 /**
68 * Test Bug 672, where different locales give a different offset after
69 * a previous for the same string at the same position
70 */
71 static void TestBug672(void);
72 
73 /**
74  * Repeat TestBug672 with normalizatin enabled - this test revealed a bug
75  *   in incremental normalization.
76  */
77 static void TestBug672Normalize(void);
78 /**
79 * Test iterators with an relatively small buffer
80 */
81 static void TestSmallBuffer(void);
82 /**
83 * Tests the CEs generated by the iterators.
84 */
85 static void TestCEs(void);
86 /**
87 * Tests the discontiguos contractions
88 */
89 static void TestDiscontiguos(void);
90 /**
91 * Tests that the iterators bails out when the CEBuffer is exhausted
92 */
93 static void TestCEBufferOverflow(void);
94 /**
95 * Tests the validity of CEs generated by the iterators.
96 * Bound checkings.
97 */
98 static void TestCEValidity(void);
99 /**
100 * Tests the validity of sortkeys generated by the iterators.
101 * Bound checkings.
102 */
103 static void TestSortKeyValidity(void);
104 /**
105 * TestSearchCollatorElements tests iterator behavior (forwards and backwards) with
106 * normalization on AND jamo tailoring, among other things.
107 */
108 static void TestSearchCollatorElements(void);
109 
110 /*------------------------------------------------------------------------
111  Internal utilities
112  */
113 
114 
115 static void assertEqual(UCollationElements *i1, UCollationElements *i2);
116 
117 
118 #endif /* #if !UCONFIG_NO_COLLATION */
119 
120 #endif
121