diff options
Diffstat (limited to 'Build/source/libs/icu/icu-xetex/test/intltest/rbbitst.h')
-rw-r--r-- | Build/source/libs/icu/icu-xetex/test/intltest/rbbitst.h | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-xetex/test/intltest/rbbitst.h b/Build/source/libs/icu/icu-xetex/test/intltest/rbbitst.h new file mode 100644 index 00000000000..d625c4a42be --- /dev/null +++ b/Build/source/libs/icu/icu-xetex/test/intltest/rbbitst.h @@ -0,0 +1,130 @@ +/************************************************************************* + * Copyright (c) 1999-2007, International Business Machines + * Corporation and others. All Rights Reserved. + ************************************************************************* + * Date Name Description + * 12/15/99 Madhu Creation. + * 01/12/2000 Madhu Updated for changed API and added new tests + ************************************************************************/ + + +#ifndef RBBITEST_H +#define RBBITEST_H + +#include "unicode/utypes.h" + +#if !UCONFIG_NO_BREAK_ITERATION + +#include "intltest.h" +#include "unicode/brkiter.h" + + +class Enumeration; +class BITestData; +struct TestParams; +class RBBIMonkeyKind; + +U_NAMESPACE_BEGIN +class UVector32; +U_NAMESPACE_END + +/** + * Test the RuleBasedBreakIterator class giving different rules + */ +class RBBITest: public IntlTest { +public: + + RBBITest(); + virtual ~RBBITest(); + + void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); + + /** + * Tests rule status return values + **/ + void TestStatusReturn(); + + void TestEmptyString(); + void TestGetAvailableLocales(); + void TestGetDisplayName(); + void TestEndBehaviour(); + void TestBug4153072(); + void TestJapaneseLineBreak(); + void TestThaiLineBreak(); + void TestMixedThaiLineBreak(); + void TestMaiyamok(); + void TestMonkey(char *params); + + void TestExtended(); + UChar *ReadAndConvertFile(const char *fileName, int &ulen, const char *encoding, UErrorCode &status); + void executeTest(TestParams *); + + void TestWordBreaks(); + void TestWordBoundary(); + void TestLineBreaks(); + void TestSentBreaks(); + void TestBug3818(); + void TestJapaneseWordBreak(); + void TestTrieDict(); + void TestUnicodeFiles(); + void TestBug5775(); + + void TestDebug(); + + +/***********************/ +private: + /** + * internal methods to prepare test data + **/ + + /** + * Perform tests of BreakIterator forward and backward functionality + * on different kinds of iterators (word, sentence, line and character). + * It tests the methods first(), next(), current(), preceding(), following() + * previous() and isBoundary(). + * It makes use of internal functions to achieve this. + **/ + void generalIteratorTest(RuleBasedBreakIterator& bi, BITestData &td); + /** + * Internal method to perform iteration and test the first() and next() functions + **/ + void testFirstAndNext(RuleBasedBreakIterator& bi, BITestData &td); + /** + * Internal method to perform iteration and test the last() and previous() functions + **/ + void testLastAndPrevious(RuleBasedBreakIterator& bi, BITestData &td); + /** + * Internal method to perform iteration and test the following() function + **/ + void testFollowing(RuleBasedBreakIterator& bi, BITestData &td); + /** + * Internal method to perform iteration and test the preceding() function + **/ + void testPreceding(RuleBasedBreakIterator& bi, BITestData &td); + /** + * Internal method to perform iteration and test the isBoundary() function + **/ + void testIsBoundary(RuleBasedBreakIterator& bi, BITestData &td); + /** + * Internal method to perform tests of BreakIterator multiple selection functionality + * on different kinds of iterators (word, sentence, line and character) + **/ + void doMultipleSelectionTest(RuleBasedBreakIterator& iterator, BITestData &td); + + void RunMonkey(BreakIterator *bi, RBBIMonkeyKind &mk, const char *name, uint32_t seed, + int32_t loopCount, UBool useUText); + + // Run one of the Unicode Consortium boundary test data files. + void runUnicodeTestData(const char *fileName, RuleBasedBreakIterator *bi); + + // Run a single test case from one of the Unicode Consortium test files. + void checkUnicodeTestCase(const char *testFileName, int lineNumber, + const UnicodeString &testString, + UVector32 *breakPositions, + RuleBasedBreakIterator *bi); +}; + +#endif /* #if !UCONFIG_NO_BREAK_ITERATION */ + +#endif |