]>
git.saurik.com Git - apple/icu.git/blob - icuSources/test/intltest/rbbitst.h
1 /*************************************************************************
2 * Copyright (c) 1999-2008, International Business Machines
3 * Corporation and others. All Rights Reserved.
4 *************************************************************************
5 * Date Name Description
6 * 12/15/99 Madhu Creation.
7 * 01/12/2000 Madhu Updated for changed API and added new tests
8 ************************************************************************/
14 #include "unicode/utypes.h"
16 #if !UCONFIG_NO_BREAK_ITERATION
19 #include "unicode/brkiter.h"
32 * Test the RuleBasedBreakIterator class giving different rules
34 class RBBITest
: public IntlTest
{
40 void runIndexedTest( int32_t index
, UBool exec
, const char* &name
, char* par
= NULL
);
43 * Tests rule status return values
45 void TestStatusReturn();
47 void TestEmptyString();
48 void TestGetAvailableLocales();
49 void TestGetDisplayName();
50 void TestEndBehaviour();
51 void TestBug4153072();
52 void TestJapaneseLineBreak();
53 void TestThaiLineBreak();
54 void TestMixedThaiLineBreak();
56 void TestMonkey(char *params
);
59 UChar
*ReadAndConvertFile(const char *fileName
, int &ulen
, const char *encoding
, UErrorCode
&status
);
60 void executeTest(TestParams
*);
62 void TestWordBreaks();
63 void TestWordBoundary();
64 void TestLineBreaks();
65 void TestSentBreaks();
67 void TestJapaneseWordBreak();
69 void TestUnicodeFiles();
71 void TestThaiBreaks();
76 /***********************/
79 * internal methods to prepare test data
83 * Perform tests of BreakIterator forward and backward functionality
84 * on different kinds of iterators (word, sentence, line and character).
85 * It tests the methods first(), next(), current(), preceding(), following()
86 * previous() and isBoundary().
87 * It makes use of internal functions to achieve this.
89 void generalIteratorTest(RuleBasedBreakIterator
& bi
, BITestData
&td
);
91 * Internal method to perform iteration and test the first() and next() functions
93 void testFirstAndNext(RuleBasedBreakIterator
& bi
, BITestData
&td
);
95 * Internal method to perform iteration and test the last() and previous() functions
97 void testLastAndPrevious(RuleBasedBreakIterator
& bi
, BITestData
&td
);
99 * Internal method to perform iteration and test the following() function
101 void testFollowing(RuleBasedBreakIterator
& bi
, BITestData
&td
);
103 * Internal method to perform iteration and test the preceding() function
105 void testPreceding(RuleBasedBreakIterator
& bi
, BITestData
&td
);
107 * Internal method to perform iteration and test the isBoundary() function
109 void testIsBoundary(RuleBasedBreakIterator
& bi
, BITestData
&td
);
111 * Internal method to perform tests of BreakIterator multiple selection functionality
112 * on different kinds of iterators (word, sentence, line and character)
114 void doMultipleSelectionTest(RuleBasedBreakIterator
& iterator
, BITestData
&td
);
116 void RunMonkey(BreakIterator
*bi
, RBBIMonkeyKind
&mk
, const char *name
, uint32_t seed
,
117 int32_t loopCount
, UBool useUText
);
119 // Run one of the Unicode Consortium boundary test data files.
120 void runUnicodeTestData(const char *fileName
, RuleBasedBreakIterator
*bi
);
122 // Run a single test case from one of the Unicode Consortium test files.
123 void checkUnicodeTestCase(const char *testFileName
, int lineNumber
,
124 const UnicodeString
&testString
,
125 UVector32
*breakPositions
,
126 RuleBasedBreakIterator
*bi
);
129 #endif /* #if !UCONFIG_NO_BREAK_ITERATION */