16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/******************************************************************** 26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * COPYRIGHT: 36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copyright (c) 1999-2013 International Business Machines Corporation and 46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * others. All Rights Reserved. 56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ********************************************************************/ 66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/************************************************************************ 76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Date Name Description 86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 12/14/99 Madhu Creation. 96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org************************************************************************/ 106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef RBBIAPITEST_H 146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define RBBIAPITEST_H 156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/utypes.h" 176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if !UCONFIG_NO_BREAK_ITERATION 196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "intltest.h" 216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/rbbi.h" 226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** 246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * API Test the RuleBasedBreakIterator class 256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass RBBIAPITest: public IntlTest { 276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgpublic: 286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); 316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Tests Constructor behaviour of RuleBasedBreakIterator 336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // void TestConstruction(void); 356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Tests clone() and equals() methods of RuleBasedBreakIterator 376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestCloneEquals(); 396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Tests toString() method of RuleBasedBreakIterator 416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestgetRules(); 436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Tests the method hashCode() of RuleBasedBreakIterator 456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestHashCode(); 476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Tests the methods getText() and setText() of RuleBasedBreakIterator 496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestGetSetAdoptText(); 516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Testing the iteration methods of RuleBasedBreakIterator 536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestIteration(void); 556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Tests creating RuleBasedBreakIterator from rules strings. 596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestBuilder(void); 616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestRoundtripRules(void); 636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void RoundtripRule(const char *dataFile); 656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test creating RuleBasedBreakIterator from RBBIData. 686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestCreateFromRBBIData(void); 716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Tests grouping effect of 'single quotes' in rules. 746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestQuoteGrouping(); 766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Tests word break status returns. 796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestRuleStatus(); 816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestRuleStatusVec(); 826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestBug2190(); 846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestBoilerPlate(); 866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestRegistration(); 886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void TestRefreshInputText(); 906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org *Internal subroutines 936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/ 946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* Internal subroutine used by TestIsBoundary() */ 956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void doBoundaryTest(BreakIterator& bi, UnicodeString& text, int32_t *boundaries); 966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /*Internal subroutine used for comparision of expected and acquired results */ 986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void doTest(UnicodeString& testString, int32_t start, int32_t gotoffset, int32_t expectedOffset, const char* expected); 996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}; 1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** 1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Special class to enable testing of protected functions in RuleBasedBreakIterator 1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass RBBIWithProtectedFunctions: public RuleBasedBreakIterator { 1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgpublic: 1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org enum EDontAdopt { 1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org kDontAdopt 1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org }; 1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org RBBIWithProtectedFunctions(RBBIDataHeader* data, UErrorCode &status); 1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org RBBIWithProtectedFunctions(const RBBIDataHeader* data, enum EDontAdopt dontAdopt, UErrorCode &status); 1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}; 1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* #if !UCONFIG_NO_BREAK_ITERATION */ 1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif 118