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