1 /******************************************************************** 2 * COPYRIGHT: 3 * Copyright (c) 1999-2014 International Business Machines Corporation and 4 * others. All Rights Reserved. 5 ********************************************************************/ 6 /************************************************************************ 7 * Date Name Description 8 * 12/14/99 Madhu Creation. 9 ************************************************************************/ 10 11 12 13 #ifndef RBBIAPITEST_H 14 #define RBBIAPITEST_H 15 16 #include "unicode/utypes.h" 17 18 #if !UCONFIG_NO_BREAK_ITERATION 19 20 #include "intltest.h" 21 #include "unicode/rbbi.h" 22 23 /** 24 * API Test the RuleBasedBreakIterator class 25 */ 26 class RBBIAPITest: public IntlTest { 27 public: 28 29 30 void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); 31 /** 32 * Tests Constructor behaviour of RuleBasedBreakIterator 33 **/ 34 // void TestConstruction(void); 35 /** 36 * Tests clone() and equals() methods of RuleBasedBreakIterator 37 **/ 38 void TestCloneEquals(); 39 /** 40 * Tests toString() method of RuleBasedBreakIterator 41 **/ 42 void TestgetRules(); 43 /** 44 * Tests the method hashCode() of RuleBasedBreakIterator 45 **/ 46 void TestHashCode(); 47 /** 48 * Tests the methods getText() and setText() of RuleBasedBreakIterator 49 **/ 50 void TestGetSetAdoptText(); 51 /** 52 * Testing the iteration methods of RuleBasedBreakIterator 53 **/ 54 void TestIteration(void); 55 56 void TestFilteredBreakIteratorBuilder(void); 57 58 /** 59 * Tests creating RuleBasedBreakIterator from rules strings. 60 **/ 61 void TestBuilder(void); 62 63 void TestRoundtripRules(void); 64 65 void RoundtripRule(const char *dataFile); 66 67 /** 68 * Test creating RuleBasedBreakIterator from RBBIData. 69 **/ 70 71 void TestCreateFromRBBIData(void); 72 73 /** 74 * Tests grouping effect of 'single quotes' in rules. 75 **/ 76 void TestQuoteGrouping(); 77 78 /** 79 * Tests word break status returns. 80 */ 81 void TestRuleStatus(); 82 void TestRuleStatusVec(); 83 84 void TestBug2190(); 85 86 void TestBoilerPlate(); 87 88 void TestRegistration(); 89 90 void TestRefreshInputText(); 91 92 /** 93 *Internal subroutines 94 **/ 95 /* Internal subroutine used by TestIsBoundary() */ 96 void doBoundaryTest(BreakIterator& bi, UnicodeString& text, int32_t *boundaries); 97 98 /*Internal subroutine used for comparision of expected and acquired results */ 99 void doTest(UnicodeString& testString, int32_t start, int32_t gotoffset, int32_t expectedOffset, const char* expected); 100 101 102 }; 103 104 /** 105 * Special class to enable testing of protected functions in RuleBasedBreakIterator 106 */ 107 class RBBIWithProtectedFunctions: public RuleBasedBreakIterator { 108 public: 109 enum EDontAdopt { 110 kDontAdopt 111 }; 112 RBBIWithProtectedFunctions(RBBIDataHeader* data, UErrorCode &status); 113 RBBIWithProtectedFunctions(const RBBIDataHeader* data, enum EDontAdopt dontAdopt, UErrorCode &status); 114 }; 115 116 #endif /* #if !UCONFIG_NO_BREAK_ITERATION */ 117 118 #endif 119