43646aea15
X-SVN-Rev: 16693
501 lines
18 KiB
Plaintext
501 lines
18 KiB
Plaintext
// Copyright (c) 2001-2004 International Business Machines
|
||
// Corporation and others. All Rights Reserved.
|
||
DataDrivenCollationTest {
|
||
Info {
|
||
Headers { "sequence" }
|
||
Description { "These are the data driven tests" }
|
||
LongDescription { "The following entries are separate tests containing test data for various locales."
|
||
"Each entry has the following fields: "
|
||
"Info/Description - short descrioption of the test"
|
||
"Settings - settings for the test."
|
||
"Settings/TestLocale - locale for the collator OR"
|
||
"Settings/Rules - rules for the collator (can't have both)"
|
||
"Settings/Arguments - arguments to be passed to the collator before testing. Use rule syntax."
|
||
"Cases - set of test cases, which are sequences of strings that will be parsed"
|
||
"Sequences must not change the sign of relation, i.e. we can only have < and = or"
|
||
"> and = in single sequence. Cannot mix < and > in the same sequence. Whitespace is"
|
||
"is ignored unless quoted."
|
||
}
|
||
}
|
||
TestData {
|
||
TestLithuanian {
|
||
Info {
|
||
Description { "Lithuanian sort order." }
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "lt" }
|
||
}
|
||
}
|
||
Cases { "cz<č<d<iz<y<j<sz<š<t<zz<ž" }
|
||
}
|
||
TestLatvian {
|
||
Info {
|
||
Description { "Latvian sort order." }
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "lv" }
|
||
}
|
||
}
|
||
Cases { "cz<č<d<gz<ģ<h<iz<y<j<kz<ķ<l<lz<ļ<m<nz<ņ<o<rz<ŗ<s<sz<š<t<zz<ž" }
|
||
}
|
||
TestEstonian {
|
||
Info {
|
||
Description { "Estonian sort order." }
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "et" }
|
||
}
|
||
}
|
||
Cases { "sy<š<šy<z<zy<ž<v<w<va<õ<õy<ä<äy<ö<öy<ü<üy<x" }
|
||
}
|
||
TestAlbanian {
|
||
Info {
|
||
Description { "Albanian sort order." }
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "sq" }
|
||
}
|
||
}
|
||
Cases { "cz<ç<d<dz<dh<e<ez<ë<f<gz<gj<h<lz<ll<m<nz<nj<o<rz<rr<s<sz<sh<t<tz<th<u<xz<xh<y<zz<zh" }
|
||
}
|
||
|
||
TestSimplifiedChineseOrder {
|
||
Info {
|
||
Description { "Sorted file has different order." }
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "root" }
|
||
Arguments { "[normalization on]" }
|
||
}
|
||
}
|
||
|
||
Cases { "\u5F20<\u5F20\u4E00\u8E3F" }
|
||
}
|
||
|
||
TestTibetanNormalizedIterativeCrash {
|
||
Info {
|
||
Description { "This pretty much crashes." }
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "root" }
|
||
}
|
||
}
|
||
|
||
Cases { "\u0f71\u0f72\u0f80\u0f71\u0f72"
|
||
"<\u0f80"
|
||
}
|
||
}
|
||
TestThaiPartialSortKeyProblems {
|
||
Info {
|
||
Description { "These are examples of strings that caused trouble in partial sort key testing." }
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "th_TH" }
|
||
}
|
||
}
|
||
// TODO: the tests that are commented out should be enabled when j2720 is fixed
|
||
Cases { "\u0E01\u0E01\u0E38\u0E18\u0E20\u0E31\u0E13\u0E11\u0E4C"
|
||
"<\u0E01\u0E01\u0E38\u0E2A\u0E31\u0E19\u0E42\u0E18",
|
||
"\u0E01\u0E07\u0E01\u0E32\u0E23"
|
||
"<\u0E01\u0E07\u0E42\u0E01\u0E49",
|
||
"\u0E01\u0E23\u0E19\u0E17\u0E32"
|
||
"<\u0E01\u0E23\u0E19\u0E19\u0E40\u0E0A\u0E49\u0E32",
|
||
"\u0E01\u0E23\u0E30\u0E40\u0E08\u0E35\u0E22\u0E27"
|
||
"<\u0E01\u0E23\u0E30\u0E40\u0E08\u0E35\u0E4A\u0E22\u0E27",
|
||
"\u0E01\u0E23\u0E23\u0E40\u0E0A\u0E2D"
|
||
"<\u0E01\u0E23\u0E23\u0E40\u0E0A\u0E49\u0E32"
|
||
}
|
||
}
|
||
TestJavaStyleRule {
|
||
Info {
|
||
Description { "java.text allows rules to start as '<<<x<<<y...' "
|
||
"we emulate this by assuming a &[first tertiary ignorable] "
|
||
"in this case."
|
||
}
|
||
}
|
||
Settings {
|
||
{
|
||
Rules { "=equal<<<z<<x<<<w<y &[first tertiary ignorable]=a &[first primary ignorable]=b" }
|
||
}
|
||
}
|
||
Cases { "a = equal < z < x < w < b < y" }
|
||
}
|
||
TestShiftedIgnorable {
|
||
Info {
|
||
Description { "New UCA states that primary ignorables should be completely "
|
||
"ignorable when following a shifted code point."
|
||
}
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "root" }
|
||
Arguments { "[alternate shifted][strength 4]" }
|
||
}
|
||
}
|
||
Cases {
|
||
"a' 'b="
|
||
"a' '\u0300b="
|
||
"a' '\u0301b<"
|
||
"a_b="
|
||
"a_\u0300b="
|
||
"a_\u0301b<"
|
||
"A' 'b="
|
||
"A' '\u0300b="
|
||
"A' '\u0301b<"
|
||
"A_b="
|
||
"A_\u0300b="
|
||
"A_\u0301b<"
|
||
"a\u0301b<"
|
||
"A\u0301b<"
|
||
"a\u0300b<"
|
||
"A\u0300b"
|
||
|
||
}
|
||
}
|
||
|
||
TestNShiftedIgnorable {
|
||
Info {
|
||
Description { "New UCA states that primary ignorables should be completely "
|
||
"ignorable when following a shifted code point."
|
||
}
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "root" }
|
||
Arguments { "[alternate non-ignorable][strength 3]" }
|
||
}
|
||
}
|
||
Cases {
|
||
"a' 'b<"
|
||
"A' 'b<"
|
||
"a' '\u0301b<"
|
||
"A' '\u0301b<"
|
||
"a' '\u0300b<"
|
||
"A' '\u0300b<"
|
||
"a_b<"
|
||
"A_b<"
|
||
"a_\u0301b<"
|
||
"A_\u0301b<"
|
||
"a_\u0300b<"
|
||
"A_\u0300b<"
|
||
"a\u0301b<"
|
||
"A\u0301b<"
|
||
"a\u0300b<"
|
||
"A\u0300b<"
|
||
}
|
||
}
|
||
|
||
TestSafeSurrogates {
|
||
Info {
|
||
Description { "It turned out that surrogates were not skipped properly "
|
||
"when iterating backwards if they were in the middle of a "
|
||
"contraction. This test assures that this is fixed."
|
||
}
|
||
}
|
||
Settings {
|
||
{
|
||
Rules {
|
||
"&a < x\ud800\udc00b"
|
||
}
|
||
}
|
||
}
|
||
Cases {
|
||
"a<x\ud800\udc00b"
|
||
}
|
||
}
|
||
|
||
TestCIgnorableContraction {
|
||
Info {
|
||
Description { "Checks whether completely ignorable code points are "
|
||
"skipped in contractions."
|
||
}
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "sh" }
|
||
}
|
||
{
|
||
Rules {
|
||
"& L < lj, Lj <<< LJ"
|
||
"& N < nj, Nj <<< NJ "
|
||
}
|
||
}
|
||
}
|
||
Cases {
|
||
"njiva=n\ud834\udd65jiva=n\uD834\uDD79jiva=n\u0000\u0000\u0000jiva=n\u0000jiva=n\ud800jiva=n\ufffejiva",
|
||
"ljubav=l\u0000jubav=l\uD834\uDD79jubav=l\u0000\u0000\u0000jubav=l\ud800jubav=l\ufffejubav",
|
||
"Ljubav=L\u0000jubav=L\uD834\uDD79jubav=L\u0000\u0000\u0000jubav=L\ud800jubav=L\ufffejubav",
|
||
}
|
||
}
|
||
|
||
|
||
TestCIgnorablePrefix {
|
||
Info {
|
||
Description { "Checks whether completely ignorable code points are "
|
||
"skipped in prefix processing."
|
||
}
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "ja" }
|
||
}
|
||
}
|
||
Cases {
|
||
"\u30A1\u30FC"
|
||
"= \u30A1\uDB40\uDC30\u30FC"
|
||
"= \u30A1\uD800\u30FC"
|
||
"= \u30A1\uFFFE\u30FC"
|
||
"= \u30A1\uD834\uDD79\u30FC"
|
||
"= \u30A1\u0000\u0000\u0000\u30FC"
|
||
"= \u30A1\u0000\u30FC"
|
||
"= \u30A1\u30FC"
|
||
"= \u30A1\u0000\u059a\u30FC"
|
||
"= \u30A1\u30FC"
|
||
}
|
||
}
|
||
da_TestPrimary {
|
||
Info {
|
||
Description { "This test goes through primary strength cases" }
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "da" }
|
||
Arguments { "[strength 1]" }
|
||
}
|
||
}
|
||
Cases {
|
||
"Lvi<Lwi",
|
||
"L\u00e4vi<L\u00f6wi",
|
||
"L\u00fcbeck=Lybeck",
|
||
}
|
||
}
|
||
da_TestTertiary {
|
||
Info {
|
||
Description { "This test goes through tertiary strength cases" }
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "da" }
|
||
Arguments { "[strength 3]" }
|
||
}
|
||
}
|
||
Cases {
|
||
"Luc<luck",
|
||
"luck<L\u00fcbeck",
|
||
"L\u00fcbeck>lybeck",
|
||
"L\u00e4vi<L\u00f6we",
|
||
"L\u00f6ww<mast",
|
||
// constUCharCollationDanishTest::testBugs[][CollationDanishTest::MAX_TOKEN_LEN]="
|
||
"A/S<"
|
||
"ANDRE<"
|
||
"ANDR\u00c9<"
|
||
"ANDREAS<"
|
||
"AS<"
|
||
"CA<"
|
||
"\u00c7A<"
|
||
"CB<"
|
||
"\u00c7C<"
|
||
"D.S.B.<"
|
||
"DA<"
|
||
"\u00d0A<"
|
||
"DB<"
|
||
"\u00d0C<"
|
||
"DSB<"
|
||
"DSC<"
|
||
"EKSTRA_ARBEJDE<"
|
||
"EKSTRABUD0<"
|
||
"H\u00d8ST<"
|
||
"HAAG<"
|
||
"H\u00c5NDBOG<"
|
||
"HAANDV\u00c6RKSBANKEN<"
|
||
"Karl<"
|
||
"karl<"
|
||
"'NIELS J\u00d8RGEN'<"
|
||
"NIELS-J\u00d8RGEN<"
|
||
"NIELSEN<"
|
||
"'R\u00c9E, A'<"
|
||
"'REE, B'<"
|
||
"'R\u00c9E, L'<"
|
||
"'REE, V'<"
|
||
"'SCHYTT, B'<"
|
||
"'SCHYTT, H'<"
|
||
"'SCH\u00dcTT, H'<"
|
||
"'SCHYTT, L'<"
|
||
"'SCH\u00dcTT, M'<"
|
||
"SS<"
|
||
"\u00df<"
|
||
"SSA<"
|
||
"'STORE VILDMOSE'<"
|
||
"STOREK\u00c6R0<"
|
||
"'STORM PETERSEN'<"
|
||
"STORMLY<"
|
||
"THORVALD<"
|
||
"THORVARDUR<"
|
||
"\u00feORVAR\u00d0UR<"
|
||
"THYGESEN<"
|
||
"'VESTERG\u00c5RD, A'<"
|
||
"'VESTERGAARD, A'<"
|
||
"'VESTERG\u00c5RD, B'<"
|
||
"\u00c6BLE<"
|
||
"\u00c4BLE<"
|
||
"\u00d8BERG<"
|
||
"\u00d6BERG",
|
||
|
||
// constUCharCollationDanishTest::testNTList[][CollationDanishTest::MAX_TOKEN_LEN]="
|
||
"andere<"
|
||
"chaque<"
|
||
"chemin<"
|
||
"cote<"
|
||
"cot\u00e9<"
|
||
"c\u00f4te<"
|
||
"c\u00f4t\u00e9<"
|
||
"\u010du\u010d\u0113t<"
|
||
"Czech<"
|
||
"hi\u0161a<"
|
||
"irdisch<"
|
||
"lie<"
|
||
"lire<"
|
||
"llama<"
|
||
"l\u00f5ug<"
|
||
"l\u00f2za<"
|
||
"lu\u010d<"
|
||
"luck<"
|
||
"L\u00fcbeck<"
|
||
"lye<"
|
||
"l\u00e4vi<"
|
||
"L\u00f6wen<"
|
||
"m\u00e0\u0161ta<"
|
||
"m\u00eer<"
|
||
"myndig<"
|
||
"M\u00e4nner<"
|
||
"m\u00f6chten<"
|
||
"pi\u00f1a<"
|
||
"pint<"
|
||
"pylon<"
|
||
"\u0161\u00e0ran<"
|
||
"savoir<"
|
||
"\u0160erb\u016bra<"
|
||
"Sietla<"
|
||
"\u015blub<"
|
||
"subtle<"
|
||
"symbol<"
|
||
"s\u00e4mtlich<"
|
||
"verkehrt<"
|
||
"vox<"
|
||
"v\u00e4ga<"
|
||
"waffle<"
|
||
"wood<"
|
||
"yen<"
|
||
"yuan<"
|
||
"yucca<"
|
||
"\u017eal<"
|
||
"\u017eena<"
|
||
"\u017den\u0113va<"
|
||
"zoo0<"
|
||
"Zviedrija<"
|
||
"Z\u00fcrich<"
|
||
"zysk0<"
|
||
"\u00e4ndere"
|
||
}
|
||
}
|
||
hi_TestNewRules {
|
||
Info {
|
||
Description { "This test goes through new rules and tests against old rules" }
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "hi" }
|
||
}
|
||
}
|
||
Cases {
|
||
"ॐ<।<॥<॰<०<१<२<३"
|
||
"<४<५<६<७<८<९<अ<आ"
|
||
"<इ<ई<उ<ऊ<ऋ<ॠ<ऌ<ॡ"
|
||
"<ऍ<ऎ<ए<ऐ<ऑ<ऒ<ओ<औ"
|
||
"<क<क़=क़<कँ<कं<कः<क॑<क॒"
|
||
"<क॓<क॔<कऽ<क्<का<कि<की<कु"
|
||
"<कू<कृ<कॄ<कॢ<कॣ<कॅ<कॆ<के"
|
||
"<कै<कॉ<कॊ<को<कौ<ख<ख़ =ख़<खँ<खं<खः"
|
||
"<ख॑<ख॒<ख॓<ख॔<खऽ<ख्<खा<खि"
|
||
"<खी<खु<खू<खृ<खॄ<खॢ<खॣ<खॅ"
|
||
"<खॆ<खे<खै<खॉ<खॊ<खो<खौ<ग"
|
||
"<ग़=ग़<गँ<गं<गः<ग॑<ग॒<ग॓<ग॔"
|
||
"<गऽ<ग्<गा<गि<गी<गु<गू<गृ"
|
||
"<गॄ<गॢ<गॣ<गॅ<गॆ<गे<गै<गॉ"
|
||
"<गॊ<गो<गौ<घ<ङ<च<छ<ज<ज़ =ज़<जँ<जं<जः"
|
||
"<ज॑<ज॒<ज॓<ज॔<जऽ<ज्<जा<जि"
|
||
"<जी<जु<जू<जृ<जॄ<जॢ<जॣ<जॅ"
|
||
"<जॆ<जे<जै<जॉ<जॊ<जो<जौ<झ"
|
||
"<ञ<ट<ठ<ड<ड़=ड़<डँ<डं<डः<ड॑<ड॒<ड॓<ड॔"
|
||
"<डऽ<ड्<डा<डि<डी<डु<डू<डृ"
|
||
"<डॄ<डॢ<डॣ<डॅ<डॆ<डे<डै<डॉ"
|
||
"<डॊ<डो<डौ<ढ<ढ़=ढ़<ढँ<ढं<ढः"
|
||
"<ढ॑<ढ॒<ढ॓<ढ॔<ढऽ<ढ्<ढा<ढि"
|
||
"<ढी<ढु<ढू<ढृ<ढॄ<ढॢ<ढॣ<ढॅ"
|
||
"<ढॆ<ढे<ढै<ढॉ<ढॊ<ढो<ढौ<ण"
|
||
"<त<थ<द<ध<न<ऩ =ऩ< नँ<नं< नः"
|
||
"<न॑<न॒<न॓<न॔<नऽ<न्<ना<नि"
|
||
"<नी<नु<नू<नृ<नॄ<नॢ<नॣ<नॅ"
|
||
"<नॆ<ने<नै<नॉ<नॊ<नो<नौ"
|
||
"<प<फ<फ़=फ़<फँ<फं<फः<फ॑<फ॒"
|
||
"<फ॓<फ॔<फऽ<फ्<फा<फि<फी<फु<फू<फृ"
|
||
"<फॄ<फॢ<फॣ<फॅ<फॆ<फे<फै<फॉ"
|
||
"<फॊ<फो<फौ<ब<भ<म<य<य़=य़ "
|
||
"<यँ<यं<यः<य॑<य॒<य॓<य॔"
|
||
"<यऽ<य्<या<यि<यी<यु<यू<यृ"
|
||
"<यॄ<यॢ<यॣ<यॅ<यॆ<ये<यै<यॉ"
|
||
"<यॊ<यो<यौ<र<ऱ=ऱ<रँ<रं<रः"
|
||
"<र॑<र॒<र॓<र॔<रऽ<र्<रा<रि"
|
||
"<री<रु<रू<रृ<रॄ<रॢ<रॣ<रॅ"
|
||
"<रॆ<रे<रै<रॉ<रॊ<रो<रौ"
|
||
"<ल<ळ<ऴ=ऴ<ळँ<ळं<ळः<ळ॑<ळ॒"
|
||
"<ळ॓<ळ॔<ळऽ<ळ्<ळा<ळि<ळी<ळु"
|
||
"<ळू<ळृ<ळॄ<ळॢ<ळॣ<ळॅ<ळॆ<ळे"
|
||
"<ळै<ळॉ<ळॊ<ळो<ळौ<व<श<ष<स<ह"
|
||
"<़<ँ<ं<ः<॑<॒<॓<॔<ऽ<्<ा<ि<ी"
|
||
"<ु<ू<ृ<ॄ<ॢ<ॣ<ॅ<ॆ"
|
||
"<े<ै<ॉ<ॊ<ो<ौ"
|
||
}
|
||
}
|
||
fi_TestNewRules {
|
||
Info {
|
||
Description { "This test goes through new rules and tests against old rules" }
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "fi" }
|
||
}
|
||
}
|
||
Cases {
|
||
"xa<xA<Xa<XA<xá<Xá<xax<xAx<xáx<xd<Xd<xð<xÐ<Xð<XÐ<xđ<xĐ<Xđ<XĐ<"
|
||
"xdx<xðx<xÐx<xđx<xĐx<xe<Xe<xex<xn<Xn<xŋ<xŊ<Xŋ<XŊ<xnx<xŋx<xŊx<"
|
||
"xo<Xo<xó<Xó<xox<xóx<xs<Xs<xß<Xß<xßx<xsx<xt<Xt<xþ<xÞ<Xþ<XÞ<xþx<"
|
||
"xÞx<xtx<xu<Xu<xú<Xú<xux<xúx<xv<Xv<xw<Xw<xvx<xwx<xy<Xy<xü<Xü<"
|
||
"xű<Xű<xyx<xüx<xűx<xz<Xz<xzx<xå<Xå<xåx<xä<Xä<xæ<xÆ<Xæ<XÆ<xäx<"
|
||
"xæx<xÆx<xö<Xö<xø<Xø<xő<Xő<xõ<Xõ<xœ<xŒ<Xœ<XŒ<xöx<xøx<xőx<xõx<xœx<xŒx"
|
||
}
|
||
}
|
||
ro_TestNewRules {
|
||
Info {
|
||
Description { "This test goes through new rules and tests against old rules" }
|
||
}
|
||
Settings {
|
||
{
|
||
TestLocale { "ro" }
|
||
}
|
||
}
|
||
Cases {
|
||
"xAx<xă<xĂ<Xă<XĂ<xăx<xĂx<xâ<xÂ<Xâ<XÂ<xâx<xÂx<xb<xIx<xî<xÎ<Xî<XÎ<xîx<xÎx<"
|
||
"xj<xSx<xș=xş<xȘ=xŞ<Xș=Xş<XȘ=XŞ<xșx=xşx<xȘx=xŞx<xT<xTx<xț=xţ<xȚ=xŢ<Xț=Xţ<XȚ"
|
||
"=XŢ<xțx=xţx<xȚx=xŢx<xU"
|
||
}
|
||
}
|
||
}
|
||
} |