| 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 |