1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/********************************************************************
2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * COPYRIGHT:
385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * Copyright (c) 1997-2009, International Business Machines Corporation and
4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * others. All Rights Reserved.
5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ********************************************************************/
6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/utypes.h"
8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#if !UCONFIG_NO_COLLATION
10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/coll.h"
12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/tblcoll.h"
13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/unistr.h"
14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/sortkey.h"
15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "allcoll.h"
16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "sfwdchit.h"
17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "../cintltst/calldata.h"
18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruCollationDummyTest::CollationDummyTest()
21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru: myCollation(0)
22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    /*UErrorCode status = U_ZERO_ERROR;
24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UnicodeString rules(TRUE, DEFAULTRULEARRAY, sizeof(DEFAULTRULEARRAY)/sizeof(DEFAULTRULEARRAY[0]));
25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UnicodeString newRules("& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ");
26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    rules += newRules;
27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    myCollation = new RuleBasedCollator(rules, status);
28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    */
29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UErrorCode status = U_ZERO_ERROR;
31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UnicodeString ruleset("& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ");
32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if (myCollation != NULL)
33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {
34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      delete myCollation;
35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    myCollation = new RuleBasedCollator(ruleset, status);
37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if(U_FAILURE(status)){
3885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho        errcheckln(status, "ERROR: in creation of rule based collator from ruleset - %s", u_errorName(status));
39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        delete myCollation;
40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        myCollation = 0;
41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruCollationDummyTest::~CollationDummyTest()
45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    delete myCollation;
47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruconst Collator::EComparisonResult CollationDummyTest::results[] = {
50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS, /*Collator::GREATER,*/
52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::GREATER,
58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::GREATER,
59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,                                     /*  10 */
60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::GREATER,
61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::GREATER,
63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::GREATER,
64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    /*  test primary > 17 */
68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,
69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,
70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,                                    /*  20 */
71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,
74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,
75ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,
76ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    /*  test secondary > 26 */
78ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,
79ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,
80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,
81ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,
82ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,                                    /*  30 */
83ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,
84ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS,
85ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,                                     /*  34 */
86ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,
87ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EQUAL,
88ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS
89ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
90ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
91ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
92ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid CollationDummyTest::TestTertiary(/* char* par */)
93ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
94ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    int32_t i = 0;
95ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    myCollation->setStrength(Collator::TERTIARY);
96ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    for (i = 0; i < 17 ; i++)
97ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {
98ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        doTest(myCollation, testSourceCases[i], testTargetCases[i], results[i]);
99ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
100ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
101ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid CollationDummyTest::TestPrimary(/* char* par */)
102ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
103ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    /* problem in strcollinc for unfinshed contractions */
104ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UErrorCode status = U_ZERO_ERROR;
105ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
106ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    myCollation->setAttribute(UCOL_NORMALIZATION_MODE, UCOL_ON, status);
107ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    myCollation->setStrength(Collator::PRIMARY);
108ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
109ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if (U_FAILURE(status))
110ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {
111ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      errln("Failure in setting attribute for normalization mode\n");
112ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
113ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
114ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    for (int i = 17; i < 26 ; i++)
115ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {
116ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        doTest(myCollation, testSourceCases[i], testTargetCases[i], results[i]);
117ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
118ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
119ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
120ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid CollationDummyTest::TestSecondary(/* char* par */)
121ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
122ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    int32_t i;
123ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    myCollation->setStrength(Collator::SECONDARY);
124ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    for (i = 26; i < 34; i++)
125ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {
126ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        doTest(myCollation, testSourceCases[i], testTargetCases[i], results[i]);
127ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
128ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
129ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
130ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid CollationDummyTest::TestExtra(/* char* par */)
131ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
132ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    int32_t i, j;
133ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    myCollation->setStrength(Collator::TERTIARY);
134ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    for (i = 0; i < COUNT_TEST_CASES-1; i++)
135ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {
136ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        for (j = i + 1; j < COUNT_TEST_CASES; j += 1)
137ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        {
138ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru            doTest(myCollation, testCases[i], testCases[j], Collator::LESS);
139ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        }
140ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
141ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
142ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
143ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid CollationDummyTest::TestIdentical()
144ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
145ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    int32_t i;
146ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    myCollation->setStrength(Collator::IDENTICAL);
147ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    for (i= 34; i<37; i++)
148ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {
149ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        doTest(myCollation, testSourceCases[i], testTargetCases[i], results[i]);
150ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
151ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
152ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
153ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid CollationDummyTest::TestJB581(void)
154ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
155ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UErrorCode status = U_ZERO_ERROR;
156ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
157ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UnicodeString source("THISISATEST.");
158ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UnicodeString target("Thisisatest.");
159ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
160ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator *coll = Collator::createInstance("en_US", status);
161ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if (U_FAILURE(status)){
162ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("ERROR: Failed to create the collator for : en_US\n");
163ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        return;
164ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
165ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
166ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::EComparisonResult result = coll->compare(source, target);
167ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    /* result is 1, secondary differences only for ignorable space characters*/
168ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if (result != 1)
169ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {
170ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("Comparing two strings with only secondary differences in C failed.\n");
171ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
172ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    /* To compare them with just primary differences */
173ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    coll->setStrength(Collator::PRIMARY);
174ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    result = coll->compare(source, target);
175ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    /* result is 0 */
176ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if (result != 0)
177ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {
178ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("Comparing two strings with no differences in C failed.\n");
179ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
180ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    /* Now, do the same comparison with keys */
181ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    CollationKey sourceKeyOut,
182ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      targetKeyOut;
183ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    coll->getCollationKey(source, sourceKeyOut, status);
184ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    coll->getCollationKey(target, targetKeyOut, status);
185ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    result = sourceKeyOut.compareTo(targetKeyOut);
186ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if (result != 0)
187ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {
188ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        errln("Comparing two strings with sort keys in C failed.\n");
189ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
190ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    delete coll;
191ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
192ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
193ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid CollationDummyTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ )
194ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
195ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if (exec) logln("TestSuite CollationDummyTest: ");
196ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if(myCollation) {
197ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      switch (index) {
198ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru          case 0: name = "TestPrimary";   if (exec)   TestPrimary(/* par */); break;
199ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru          case 1: name = "TestSecondary"; if (exec)   TestSecondary(/* par */); break;
200ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru          case 2: name = "TestTertiary";  if (exec)   TestTertiary(/* par */); break;
201ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru          case 3: name = "TestExtra";     if (exec)   TestExtra(/* par */); break;
202ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru          case 4: name = "TestIdentical"; if (exec)   TestIdentical(/* par */); break;
203ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru          case 5: name = "TestJB581";     if (exec)   TestJB581(/* par */); break;
204ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru          default: name = ""; break;
205ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      }
206ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    } else {
20785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho      dataerrln("Collator couldn't be instantiated!");
208ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      name = "";
209ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
210ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
211ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
212ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif /* #if !UCONFIG_NO_COLLATION */
213