X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/46f4442e9a5a4f3b98b7c1083586332f6a8a99a4..4f1e1a09ce4daed860e35d359ce2fceccb0764e8:/icuSources/test/intltest/rbbitst.h diff --git a/icuSources/test/intltest/rbbitst.h b/icuSources/test/intltest/rbbitst.h index cb8efa48..cfaf688a 100644 --- a/icuSources/test/intltest/rbbitst.h +++ b/icuSources/test/intltest/rbbitst.h @@ -1,5 +1,7 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /************************************************************************* - * Copyright (c) 1999-2008, International Business Machines + * Copyright (c) 1999-2016, International Business Machines * Corporation and others. All Rights Reserved. ************************************************************************* * Date Name Description @@ -15,9 +17,11 @@ #if !UCONFIG_NO_BREAK_ITERATION +#include + #include "intltest.h" #include "unicode/brkiter.h" - +#include "unicode/rbbi.h" class Enumeration; class BITestData; @@ -39,12 +43,6 @@ public: 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(); @@ -53,11 +51,11 @@ public: void TestThaiLineBreak(); void TestMixedThaiLineBreak(); void TestMaiyamok(); - void TestMonkey(char *params); + void TestMonkey(); void TestExtended(); UChar *ReadAndConvertFile(const char *fileName, int &ulen, const char *encoding, UErrorCode &status); - void executeTest(TestParams *); + void executeTest(TestParams *, UErrorCode &status); void TestWordBreaks(); void TestWordBoundary(); @@ -68,10 +66,25 @@ public: void TestTrieDict(); void TestUnicodeFiles(); void TestBug5775(); - void TestThaiBreaks(); + void TestTailoredBreaks(); + void TestDictRules(); + void TestBug5532(); + void TestBug9983(); + void TestBug7547(); + void TestBug12797(); + void TestBug12918(); + void TestBug12932(); + void TestEmoji(); + void TestBug12519(); + void TestBug12677(); + void TestTableRedundancies(); + void TestBug13447(); + void TestReverse(); + void TestReverse(std::unique_ptrbi); + void TestBug13692(); void TestDebug(); - + void TestProperties(); /***********************/ private: @@ -79,40 +92,6 @@ 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); @@ -124,6 +103,22 @@ private: const UnicodeString &testString, UVector32 *breakPositions, RuleBasedBreakIterator *bi); + + // Run the actual tests for TestTailoredBreaks() + void TBTest(BreakIterator* brkitr, int type, const char *locale, const char* escapedText, + const int32_t *expectOffsets, int32_t expectOffsetsCount); + + /** Filter for test cases from the Unicode test data files. + * Some need to be skipped because ICU is unable to fully implement the + * Unicode boundary specifications. + * @param testCase the test data string. + * @param fileName the Unicode test data file name. + * @return FALSE if the test case should be run, TRUE if it should be skipped. + */ + UBool testCaseIsKnownIssue(const UnicodeString &testCase, const char *fileName); + + // Test parameters, from the test framework and test invocation. + const char* fTestParams; }; #endif /* #if !UCONFIG_NO_BREAK_ITERATION */