OLD | NEW |
(Empty) | |
| 1 /************************************************************************* |
| 2 * Copyright (c) 1999-2010, 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 *); |
| 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 TestThaiBreaks(); |
| 72 void TestTailoredBreaks(); |
| 73 void TestDictRules(); |
| 74 void TestBug5532(); |
| 75 |
| 76 void TestDebug(); |
| 77 |
| 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 |
| 136 #endif /* #if !UCONFIG_NO_BREAK_ITERATION */ |
| 137 |
| 138 #endif |
OLD | NEW |