+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
/*************************************************************************
- * Copyright (c) 1999-2013, International Business Machines
+ * Copyright (c) 1999-2016, International Business Machines
* Corporation and others. All Rights Reserved.
*************************************************************************
* Date Name Description
#if !UCONFIG_NO_BREAK_ITERATION
+#include <memory>
+
#include "intltest.h"
#include "unicode/brkiter.h"
-
+#include "unicode/rbbi.h"
class Enumeration;
class BITestData;
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 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();
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_ptr<RuleBasedBreakIterator>bi);
+ void TestBug13692();
void TestDebug();
void TestProperties();
* 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 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 */