1 /******************************************************************** 2 * COPYRIGHT: 3 * Copyright (c) 1997-2006, International Business Machines Corporation and 4 * others. All Rights Reserved. 5 ********************************************************************/ 6 7 /** 8 * G7CollationTest is a third level test class. This test performs the examples 9 * mentioned on the IBM Java international demos web site. 10 * Sample Rules: & Z < p , P 11 * Effect : Making P sort after Z. 12 * 13 * Sample Rules: & c < ch , cH, Ch, CH 14 * Effect : As well as adding sequences of characters that act as a single character (this is 15 * known as contraction), you can also add characters that act like a sequence of 16 * characters (this is known as expansion). 17 * 18 * Sample Rules: & Question'-'mark ; '?' & Hash'-'mark ; '#' & Ampersand ; '&' 19 * Effect : Expansion and contraction can actually be combined. 20 * 21 * Sample Rules: & aa ; a'-' & ee ; e'-' & ii ; i'-' & oo ; o'-' & uu ; u'-' 22 * Effect : sorted sequence as the following, 23 * aardvark 24 * a-rdvark 25 * abbot 26 * coop 27 * co-p 28 * cop 29 */ 30 31 #ifndef _G7COLL 32 #define _G7COLL 33 34 #include "unicode/utypes.h" 35 36 #if !UCONFIG_NO_COLLATION 37 38 #include "unicode/tblcoll.h" 39 #include "tscoll.h" 40 41 class G7CollationTest: public IntlTestCollator { 42 public: 43 // If this is too small for the test data, just increase it. 44 // Just don't make it too large, otherwise the executable will get too big 45 enum EToken_Len { MAX_TOKEN_LEN = 16 }; 46 47 enum ETotal_Locales { TESTLOCALES = 12 }; 48 enum ETotal_Fixed { FIXEDTESTSET = 15 }; 49 enum ETotal_Test { TOTALTESTSET = 30 }; 50 51 G7CollationTest() {} 52 virtual ~G7CollationTest(); 53 void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); 54 55 56 // perform test for G7 locales 57 void TestG7Locales(/* char* par */); 58 59 // perform test with added rules " & Z < p, P" 60 void TestDemo1(/* char* par */); 61 62 // perorm test with added rules "& C < ch , cH, Ch, CH" 63 void TestDemo2(/* char* par */); 64 65 // perform test with added rules 66 // "& Question'-'mark ; '?' & Hash'-'mark ; '#' & Ampersand ; '&'" 67 void TestDemo3(/* char* par */); 68 69 // perform test with added rules 70 // " & aa ; a'-' & ee ; e'-' & ii ; i'-' & oo ; o'-' & uu ; u'-' " 71 void TestDemo4(/* char* par */); 72 73 }; 74 75 #endif /* #if !UCONFIG_NO_COLLATION */ 76 77 #endif 78