1b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/******************************************************************** 2b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * COPYRIGHT: 3b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho * Copyright (c) 1997-2011, International Business Machines Corporation and 4b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * others. All Rights Reserved. 5b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ********************************************************************/ 6b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 7b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 8b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Collation regression tests. 9b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * (So we'll have no regrets later) 10b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 11b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 12b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#ifndef _REGCOLL 13b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#define _REGCOLL 14b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 15b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/utypes.h" 16b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 17b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#if !UCONFIG_NO_COLLATION 18b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 19b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/coleitr.h" 20b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "tscoll.h" 21b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 22b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruclass CollationRegressionTest: public IntlTestCollator 23b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 24b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querupublic: 25b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 26b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // If this is too small for the test data, just increase it. 27b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Just don't make it too large, otherwise the executable will get too big 28b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru enum EToken_Len { MAX_TOKEN_LEN = 32 }; 29b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 30b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru CollationRegressionTest(); 31b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual ~CollationRegressionTest(); 32b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 33b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); 34b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 35b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4048446 36b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 37b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // CollationElementIterator.reset() doesn't work 38b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 39b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4048446(/* char* par */); 40b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 41b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4051866 42b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 43b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Collator -> rules -> Collator round-trip broken for expanding characters 44b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 45b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4051866(/* char* par */); 46b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 47b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4053636 48b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 49b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Collator thinks "black-bird" == "black" 50b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 51b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4053636(/* char* par */); 52b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 53b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 54b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4054238 55b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 56b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // CollationElementIterator will not work correctly if the associated 57b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Collator object's mode is changed 58b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 59b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4054238(/* char* par */); 60b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 61b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4054734 62b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 63b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Collator.IDENTICAL documented but not implemented 64b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 65b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4054734(/* char* par */); 66b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 67b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4054736 68b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 69b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Full Decomposition mode not implemented 70b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 71b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4054736(/* char* par */); 72b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 73b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4058613 74b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 75b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Collator.getInstance() causes an ArrayIndexOutofBoundsException for Korean 76b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 77b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4058613(/* char* par */); 78b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 79b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4059820 80b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 81b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // RuleBasedCollator.getRules does not return the exact pattern as input 82b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // for expanding character sequences 83b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 84b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4059820(/* char* par */); 85b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 86b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4060154 87b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 88b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // MergeCollation::fixEntry broken for "& H < \u0131, \u0130, i, I" 89b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 90b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4060154(/* char* par */); 91b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 92b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4062418 93b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 94b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Secondary/Tertiary comparison incorrect in French Secondary 95b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 96b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4062418(/* char* par */); 97b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 98b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4065540 99b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 100b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Collator.compare() method broken if either string contains spaces 101b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 102b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4065540(/* char* par */); 103b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 104b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4066189 105b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 106b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Unicode characters need to be recursively decomposed to get the 107b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // correct result. For example, 108b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // u1EB1 -> \u0103 + \u0300 -> a + \u0306 + \u0300. 109b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 110b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4066189(/* char* par */); 111b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 112b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4066696 113b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 114b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // French secondary collation checking at the end of compare iteration fails 115b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 116b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4066696(/* char* par */); 117b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 118b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 119b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4076676 120b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 121b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Bad canonicalization of same-class combining characters 122b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 123b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4076676(/* char* par */); 124b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 125b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 126b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4078588 127b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 128b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // RuleBasedCollator breaks on "< a < bb" rule 129b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 130b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4078588(/* char* par */); 131b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 132b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4079231 133b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 134b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // RuleBasedCollator.equals(null) throws NullPointerException 135b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 136b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4079231(/* char* par */); 137b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 138b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4081866 139b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 140b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Combining characters in different classes not reordered properly. 141b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 142b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4081866(/* char* par */); 143b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 144b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4087241 145b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 146b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // string comparison errors in Scandinavian collators 147b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 148b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4087241(/* char* par */); 149b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 150b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4087243 151b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 152b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // CollationKey takes ignorable strings into account when it shouldn't 153b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 154b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4087243(/* char* par */); 155b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 156b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4092260 157b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 158b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Mu/micro conflict 159b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Micro symbol and greek lowercase letter Mu should sort identically 160b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 161b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4092260(/* char* par */); 162b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 163b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4095316 164b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 165b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4095316(/* char* par */); 166b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 167b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4101940 168b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 169b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4101940(/* char* par */); 170b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 171b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4103436 172b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 173b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Collator.compare not handling spaces properly 174b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 175b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4103436(/* char* par */); 176b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 177b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4114076 178b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 179b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Collation not Unicode conformant with Hangul syllables 180b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 181b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4114076(/* char* par */); 182b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 183b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 184b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4114077 185b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 186b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Collation with decomposition off doesn't work for Europe 187b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 188b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4114077(/* char* par */); 189b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 190b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4124632 191b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 192b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Collator.getCollationKey was hanging on certain character sequences 193b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 194b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4124632(/* char* par */); 195b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 196b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4132736 197b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 198b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // sort order of french words with multiple accents has errors 199b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 200b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4132736(/* char* par */); 201b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 202b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4133509 203b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 204b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // The sorting using java.text.CollationKey is not in the exact order 205b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 206b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4133509(/* char* par */); 207b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 208b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4139572 209b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 210b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // getCollationKey throws exception for spanish text 211b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Cannot reproduce this bug on 1.2, however it DOES fail on 1.1.6 212b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 213b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4139572(/* char* par */); 214b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 215b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4141640 216b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 217b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Support for Swedish gone in 1.1.6 (Can't create Swedish collator) 218b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 219b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4141640(/* char* par */); 220b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 221b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // @bug 4146160 222b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 223b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // RuleBasedCollator doesn't use getCollationElementIterator internally 224b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 225b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void Test4146160(/* char* par */); 226b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 227b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho // Ticket 7189 228b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho // 229b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho // nextSortKeyPart incorrect for EO_S1 collation 230b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho // 231b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho void TestT7189(); 232b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho 233b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho // Ticket 8624 234b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho // 235b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho // Tertiary value compression problem with case first option enabled 236b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho // 237b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho void TestCaseFirstCompression(); 23850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 239b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruprivate: 240b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru //------------------------------------------------------------------------ 241b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Internal utilities 242b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // 243b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void compareArray(Collator &c, 244b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const UChar tests[][CollationRegressionTest::MAX_TOKEN_LEN], 245b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t testCount); 246b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 247b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru void assertEqual(CollationElementIterator &i1, CollationElementIterator &i2); 248b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 249b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 250b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru RuleBasedCollator *en_us; 251b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 252b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho void caseFirstCompressionSub(Collator *col, UnicodeString opt); 253b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru}; 254b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 255b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif /* #if !UCONFIG_NO_COLLATION */ 256b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 257b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif 258