blob: 00414a2466efadf27672c6248214307d1ac47530 [file] [log] [blame]
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 {
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<"
"DB<"
"DSB<"
"DSC<"
"\u00d0A<"
"\u00d0C<"
"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<"
"THYGESEN<"
"\u00feORVAR\u00d0UR<"
"'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<"
"waffle<"
"verkehrt<"
"wood<"
"vox<"
"v\u00e4ga<"
"yen<"
"yuan<"
"yucca<"
"\u017eal<"
"\u017eena<"
"\u017den\u0113va<"
"zoo0<"
"Zviedrija<"
"Z\u00fcrich<"
"zysk0<"
"\u00e4ndere"
}
}
}
}