]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/test/intltest/rbbitst.h
ICU-62123.0.1.tar.gz
[apple/icu.git] / icuSources / test / intltest / rbbitst.h
index 0426d707eb9d5dc0803ad40ebd2970f8ee2f9279..cfaf688ac1f61c5e48762c1547b09d930e6ef445 100644 (file)
@@ -1,5 +1,7 @@
+// © 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;
@@ -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();
@@ -72,6 +70,18 @@ public:
     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();
@@ -82,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);
 
@@ -131,6 +107,18 @@ private:
     // 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 */