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