]>
git.saurik.com Git - apple/icu.git/blob - icuSources/test/intltest/rbbitst.h
1 /********************************************************************
3 * Copyright (c) 1999-2006, International Business Machines Corporation and
4 * others. All Rights Reserved.
5 ********************************************************************/
6 /************************************************************************
7 * Date Name Description
8 * 12/15/99 Madhu Creation.
9 * 01/12/2000 Madhu Updated for changed API and added new tests
10 ************************************************************************/
16 #include "unicode/utypes.h"
18 #if !UCONFIG_NO_BREAK_ITERATION
21 #include "unicode/brkiter.h"
30 * Test the RuleBasedBreakIterator class giving different rules
32 class RBBITest
: public IntlTest
{
38 void runIndexedTest( int32_t index
, UBool exec
, const char* &name
, char* par
= NULL
);
41 * Tests rule status return values
43 void TestStatusReturn();
46 * Run the Unicode Line Break test data.
48 void TestLineBreakData();
51 * Run tests from external test data file.
54 void TestEmptyString();
55 void TestGetAvailableLocales();
56 void TestGetDisplayName();
57 void TestEndBehaviour();
58 void TestBug4153072();
59 void TestJapaneseLineBreak();
60 void TestThaiLineBreak();
61 void TestMixedThaiLineBreak();
63 void TestMonkey(char *params
);
66 UChar
*ReadAndConvertFile(const char *fileName
, int &ulen
, UErrorCode
&status
);
67 void executeTest(TestParams
*);
69 void TestWordBreaks();
70 void TestWordBoundary();
71 void TestLineBreaks();
72 void TestSentBreaks();
74 void TestJapaneseWordBreak();
79 /***********************/
82 * internal methods to prepare test data
86 * Perform tests of BreakIterator forward and backward functionality
87 * on different kinds of iterators (word, sentence, line and character).
88 * It tests the methods first(), next(), current(), preceding(), following()
89 * previous() and isBoundary().
90 * It makes use of internal functions to achieve this.
92 void generalIteratorTest(RuleBasedBreakIterator
& bi
, BITestData
&td
);
94 * Internal method to perform iteration and test the first() and next() functions
96 void testFirstAndNext(RuleBasedBreakIterator
& bi
, BITestData
&td
);
98 * Internal method to perform iteration and test the last() and previous() functions
100 void testLastAndPrevious(RuleBasedBreakIterator
& bi
, BITestData
&td
);
102 * Internal method to perform iteration and test the following() function
104 void testFollowing(RuleBasedBreakIterator
& bi
, BITestData
&td
);
106 * Internal method to perform iteration and test the preceding() function
108 void testPreceding(RuleBasedBreakIterator
& bi
, BITestData
&td
);
110 * Internal method to perform iteration and test the isBoundary() function
112 void testIsBoundary(RuleBasedBreakIterator
& bi
, BITestData
&td
);
114 * Internal method to perform tests of BreakIterator multiple selection functionality
115 * on different kinds of iterators (word, sentence, line and character)
117 void doMultipleSelectionTest(RuleBasedBreakIterator
& iterator
, BITestData
&td
);
119 void RunMonkey(BreakIterator
*bi
, RBBIMonkeyKind
&mk
, const char *name
, uint32_t seed
,
120 int32_t loopCount
, UBool useUText
);
124 #endif /* #if !UCONFIG_NO_BREAK_ITERATION */