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