OLD | NEW |
| (Empty) |
1 /************************************************************************* | |
2 * Copyright (c) 1999-2014, International Business Machines | |
3 * Corporation and others. All Rights Reserved. | |
4 ************************************************************************* | |
5 * Date Name Description | |
6 * 12/15/99 Madhu Creation. | |
7 * 01/12/2000 Madhu Updated for changed API and added new tests | |
8 ************************************************************************/ | |
9 | |
10 | |
11 #ifndef RBBITEST_H | |
12 #define RBBITEST_H | |
13 | |
14 #include "unicode/utypes.h" | |
15 | |
16 #if !UCONFIG_NO_BREAK_ITERATION | |
17 | |
18 #include "intltest.h" | |
19 #include "unicode/brkiter.h" | |
20 | |
21 | |
22 class Enumeration; | |
23 class BITestData; | |
24 struct TestParams; | |
25 class RBBIMonkeyKind; | |
26 | |
27 U_NAMESPACE_BEGIN | |
28 class UVector32; | |
29 U_NAMESPACE_END | |
30 | |
31 /** | |
32 * Test the RuleBasedBreakIterator class giving different rules | |
33 */ | |
34 class RBBITest: public IntlTest { | |
35 public: | |
36 | |
37 RBBITest(); | |
38 virtual ~RBBITest(); | |
39 | |
40 void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par
= NULL ); | |
41 | |
42 /** | |
43 * Tests rule status return values | |
44 **/ | |
45 void TestStatusReturn(); | |
46 | |
47 void TestEmptyString(); | |
48 void TestGetAvailableLocales(); | |
49 void TestGetDisplayName(); | |
50 void TestEndBehaviour(); | |
51 void TestBug4153072(); | |
52 void TestJapaneseLineBreak(); | |
53 void TestThaiLineBreak(); | |
54 void TestMixedThaiLineBreak(); | |
55 void TestMaiyamok(); | |
56 void TestMonkey(char *params); | |
57 | |
58 void TestExtended(); | |
59 UChar *ReadAndConvertFile(const char *fileName, int &ulen, const char *encod
ing, UErrorCode &status); | |
60 void executeTest(TestParams *, UErrorCode &status); | |
61 | |
62 void TestWordBreaks(); | |
63 void TestWordBoundary(); | |
64 void TestLineBreaks(); | |
65 void TestSentBreaks(); | |
66 void TestBug3818(); | |
67 void TestJapaneseWordBreak(); | |
68 void TestTrieDict(); | |
69 void TestUnicodeFiles(); | |
70 void TestBug5775(); | |
71 void TestTailoredBreaks(); | |
72 void TestDictRules(); | |
73 void TestBug5532(); | |
74 void TestBug9983(); | |
75 | |
76 void TestDebug(); | |
77 void TestProperties(); | |
78 | |
79 /***********************/ | |
80 private: | |
81 /** | |
82 * internal methods to prepare test data | |
83 **/ | |
84 | |
85 /** | |
86 * Perform tests of BreakIterator forward and backward functionality | |
87 * on different kinds of iterators (word, sentence, line and character). | |
88 * It tests the methods first(), next(), current(), preceding(), following() | |
89 * previous() and isBoundary(). | |
90 * It makes use of internal functions to achieve this. | |
91 **/ | |
92 void generalIteratorTest(RuleBasedBreakIterator& bi, BITestData &td); | |
93 /** | |
94 * Internal method to perform iteration and test the first() and next() func
tions | |
95 **/ | |
96 void testFirstAndNext(RuleBasedBreakIterator& bi, BITestData &td); | |
97 /** | |
98 * Internal method to perform iteration and test the last() and previous() f
unctions | |
99 **/ | |
100 void testLastAndPrevious(RuleBasedBreakIterator& bi, BITestData &td); | |
101 /** | |
102 * Internal method to perform iteration and test the following() function | |
103 **/ | |
104 void testFollowing(RuleBasedBreakIterator& bi, BITestData &td); | |
105 /** | |
106 * Internal method to perform iteration and test the preceding() function | |
107 **/ | |
108 void testPreceding(RuleBasedBreakIterator& bi, BITestData &td); | |
109 /** | |
110 * Internal method to perform iteration and test the isBoundary() function | |
111 **/ | |
112 void testIsBoundary(RuleBasedBreakIterator& bi, BITestData &td); | |
113 /** | |
114 * Internal method to perform tests of BreakIterator multiple selection func
tionality | |
115 * on different kinds of iterators (word, sentence, line and character) | |
116 **/ | |
117 void doMultipleSelectionTest(RuleBasedBreakIterator& iterator, BITestData &t
d); | |
118 | |
119 void RunMonkey(BreakIterator *bi, RBBIMonkeyKind &mk, const char *name, uint
32_t seed, | |
120 int32_t loopCount, UBool useUText); | |
121 | |
122 // Run one of the Unicode Consortium boundary test data files. | |
123 void runUnicodeTestData(const char *fileName, RuleBasedBreakIterator *bi); | |
124 | |
125 // Run a single test case from one of the Unicode Consortium test files. | |
126 void checkUnicodeTestCase(const char *testFileName, int lineNumber, | |
127 const UnicodeString &testString, | |
128 UVector32 *breakPositions, | |
129 RuleBasedBreakIterator *bi); | |
130 | |
131 // Run the actual tests for TestTailoredBreaks() | |
132 void TBTest(BreakIterator* brkitr, int type, const char *locale, const char*
escapedText, | |
133 const int32_t *expectOffsets, int32_t expectOffsetsCount); | |
134 | |
135 /** Filter for test cases from the Unicode test data files. | |
136 * Some need to be skipped because ICU is unable to fully implement the | |
137 * Unicode boundary specifications. | |
138 * @param testCase the test data string. | |
139 * @param fileName the Unicode test data file name. | |
140 * @return FALSE if the test case should be run, TRUE if it should be skipp
ed. | |
141 */ | |
142 UBool testCaseIsKnownIssue(const UnicodeString &testCase, const char *fileNa
me); | |
143 }; | |
144 | |
145 #endif /* #if !UCONFIG_NO_BREAK_ITERATION */ | |
146 | |
147 #endif | |
OLD | NEW |