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