﻿// Copyright (c) 2001-2008 International Business Machines
// Corporation and others. All Rights Reserved.
DataDrivenCollationTest:table(nofallback) {
    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 {
		TestMorePinyin {
			Info {
				Description { "Testing the primary strength." }
			}
			Settings {
				{
					TestLocale { "zh" }
					Arguments { "[strength 1]" }
				}
			}
			Cases { "lā = lĀ = Lā = LĀ < lān = lĀn < lē = lĒ = Lē = LĒ < lēn = lĒn" }
			
		}
        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"
            }
        }
/*
	UCA 4.1 removes skipping of ignorable code points in contractions!
        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",
            }
        }
                
*/
/*
	UCA 4.1 removes skipping of ignorable code points in contractions!
        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"
            }
        }
        
        testOffsets {
            Info {
                Description { "This tests cases where forwards and backwards iteration get different offsets" }
            }
            
            Settings {
                {
                    TestLocale { "en" }
                    Arguments  { "[strength 3]" }
                }
            }
                
            Cases {
                "a\uD800\uDC00\uDC00<b\uD800\uDC00\uDC00",
                "\u0301A\u0301\u0301<\u0301B\u0301\u0301",
                "abcd\r\u0301<abce\r\u0301"
            }
        }    
    }
}
