1aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin/* GENERATED SOURCE. DO NOT MODIFY. */
2f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert// © 2016 and later: Unicode, Inc. and others.
3f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert// License & terms of use: http://www.unicode.org/copyright.html#License
4aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin/*
5aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin *******************************************************************************
6aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin * Copyright (C) 2002-2014, International Business Machines Corporation and
7aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin * others. All Rights Reserved.
8aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin *******************************************************************************
9aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin */
10aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
1105fa7802d0874812c234a29745586677ee5837eaFredrik Roubert/**
12aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin * Port From:   ICU4C v2.1 : Collate/CollationEnglishTest
13aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin * Source File: $ICU4CRoot/source/test/intltest/encoll.cpp
14aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin **/
1505fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
16aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffinpackage android.icu.dev.test.collator;
1705fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
18aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffinimport java.util.Locale;
19aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
20f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubertimport org.junit.Before;
21f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubertimport org.junit.Test;
2205fa7802d0874812c234a29745586677ee5837eaFredrik Roubertimport org.junit.runner.RunWith;
2305fa7802d0874812c234a29745586677ee5837eaFredrik Roubertimport org.junit.runners.JUnit4;
24f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert
25aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffinimport android.icu.dev.test.TestFmwk;
26aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffinimport android.icu.text.CollationKey;
27aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffinimport android.icu.text.Collator;
282e13a2bdade5cd0a635f0bd89805931a6fd710daPete Gillinimport android.icu.testsharding.MainTestShard;
2905fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
302e13a2bdade5cd0a635f0bd89805931a6fd710daPete Gillin@MainTestShard
3105fa7802d0874812c234a29745586677ee5837eaFredrik Roubert@RunWith(JUnit4.class)
32aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffinpublic class CollationEnglishTest extends TestFmwk{
33aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    private static char[][] testSourceCases = {
34aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */},
35aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0062 /* 'b' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0063 /* 'c' */, 0x006B /* 'k' */, 0x002D /* '-' */, 0x0062 /* 'b' */, 0x0069 /* 'i' */, 0x0072 /* 'r' */, 0x0064 /* 'd' */},
36aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0062 /* 'b' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0063 /* 'c' */, 0x006B /* 'k' */, 0x0020 /* ' ' */, 0x0062 /* 'b' */, 0x0069 /* 'i' */, 0x0072 /* 'r' */, 0x0064 /* 'd' */},
37aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0062 /* 'b' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0063 /* 'c' */, 0x006B /* 'k' */, 0x002D /* '-' */, 0x0062 /* 'b' */, 0x0069 /* 'i' */, 0x0072 /* 'r' */, 0x0064 /* 'd' */},
38aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0048 /* 'H' */, 0x0065 /* 'e' */, 0x006C /* 'l' */, 0x006C /* 'l' */, 0x006F /* 'o' */},
3905fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        {0x0041 /* 'A' */, 0x0042 /* 'B' */, 0x0043 /* 'C' */},
40aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
41aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0062 /* 'b' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0063 /* 'c' */, 0x006B /* 'k' */, 0x0062 /* 'b' */, 0x0069 /* 'i' */, 0x0072 /* 'r' */, 0x0064 /* 'd' */},
42aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0062 /* 'b' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0063 /* 'c' */, 0x006B /* 'k' */, 0x002D /* '-' */, 0x0062 /* 'b' */, 0x0069 /* 'i' */, 0x0072 /* 'r' */, 0x0064 /* 'd' */},
43aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0062 /* 'b' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0063 /* 'c' */, 0x006B /* 'k' */, 0x002D /* '-' */, 0x0062 /* 'b' */, 0x0069 /* 'i' */, 0x0072 /* 'r' */, 0x0064 /* 'd' */},
4405fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        {0x0070 /* 'p' */, 0x00EA, 0x0063 /* 'c' */, 0x0068 /* 'h' */, 0x0065 /* 'e' */},
45aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0070 /* 'p' */, 0x00E9, 0x0063 /* 'c' */, 0x0068 /* 'h' */, 0x00E9},
46aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00C4, 0x0042 /* 'B' */, 0x0308, 0x0043 /* 'C' */, 0x0308},
47aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0308, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
48aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0070 /* 'p' */, 0x00E9, 0x0063 /* 'c' */, 0x0068 /* 'h' */, 0x0065 /* 'e' */, 0x0072 /* 'r' */},
49aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0072 /* 'r' */, 0x006F /* 'o' */, 0x006C /* 'l' */, 0x0065 /* 'e' */, 0x0073 /* 's' */},
50aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
51aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0041 /* 'A' */},
52aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0041 /* 'A' */},
5305fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        {0x0061 /* 'a' */, 0x0062 /* 'b' */},
54aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0074 /* 't' */, 0x0063 /* 'c' */, 0x006F /* 'o' */, 0x006D /* 'm' */, 0x0070 /* 'p' */, 0x0061 /* 'a' */, 0x0072 /* 'r' */, 0x0065 /* 'e' */, 0x0070 /* 'p' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0069 /* 'i' */, 0x006E /* 'n' */},
5505fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        {0x0061 /* 'a' */, 0x0062 /* 'b' */},
56aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0023 /* '#' */, 0x0062 /* 'b' */},
57aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0023 /* '#' */, 0x0062 /* 'b' */},
58aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
59aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0041 /* 'A' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */, 0x0064 /* 'd' */, 0x0061 /* 'a' */},
60aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */, 0x0064 /* 'd' */, 0x0061 /* 'a' */},
61aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */, 0x0064 /* 'd' */, 0x0061 /* 'a' */},
62aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00E6, 0x0062 /* 'b' */, 0x0063 /* 'c' */, 0x0064 /* 'd' */, 0x0061 /* 'a' */},
6305fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        {0x00E4, 0x0062 /* 'b' */, 0x0063 /* 'c' */, 0x0064 /* 'd' */, 0x0061 /* 'a' */},
64aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
65aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
66aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
67aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
68aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
69aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0063 /* 'c' */, 0x0048 /* 'H' */, 0x0063 /* 'c' */},
70aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0308, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
71aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0074 /* 't' */, 0x0068 /* 'h' */, 0x0069 /* 'i' */, 0x0302, 0x0073 /* 's' */},
72aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0070 /* 'p' */, 0x00EA, 0x0063 /* 'c' */, 0x0068 /* 'h' */, 0x0065 /* 'e' */},
7305fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
74aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
75aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
76aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x00E6, 0x0063 /* 'c' */},
77aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
78aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
79aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x00E6, 0x0063 /* 'c' */},
80aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
8105fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
82aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0070 /* 'p' */, 0x00E9, 0x0063 /* 'c' */, 0x0068 /* 'h' */, 0x00E9}                                            // 49
83aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    };
8405fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
85aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    private static char[][] testTargetCases = {
86aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
87aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0062 /* 'b' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0063 /* 'c' */, 0x006B /* 'k' */, 0x0062 /* 'b' */, 0x0069 /* 'i' */, 0x0072 /* 'r' */, 0x0064 /* 'd' */},
88aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0062 /* 'b' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0063 /* 'c' */, 0x006B /* 'k' */, 0x002D /* '-' */, 0x0062 /* 'b' */, 0x0069 /* 'i' */, 0x0072 /* 'r' */, 0x0064 /* 'd' */},
89aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0062 /* 'b' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0063 /* 'c' */, 0x006B /* 'k' */},
90aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0068 /* 'h' */, 0x0065 /* 'e' */, 0x006C /* 'l' */, 0x006C /* 'l' */, 0x006F /* 'o' */},
91aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0041 /* 'A' */, 0x0042 /* 'B' */, 0x0043 /* 'C' */},
92aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0041 /* 'A' */, 0x0042 /* 'B' */, 0x0043 /* 'C' */},
93aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0062 /* 'b' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0063 /* 'c' */, 0x006B /* 'k' */, 0x0062 /* 'b' */, 0x0069 /* 'i' */, 0x0072 /* 'r' */, 0x0064 /* 'd' */, 0x0073 /* 's' */},
94aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0062 /* 'b' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0063 /* 'c' */, 0x006B /* 'k' */, 0x0062 /* 'b' */, 0x0069 /* 'i' */, 0x0072 /* 'r' */, 0x0064 /* 'd' */, 0x0073 /* 's' */},
9505fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        {0x0062 /* 'b' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0063 /* 'c' */, 0x006B /* 'k' */, 0x0062 /* 'b' */, 0x0069 /* 'i' */, 0x0072 /* 'r' */, 0x0064 /* 'd' */},
96aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0070 /* 'p' */, 0x00E9, 0x0063 /* 'c' */, 0x0068 /* 'h' */, 0x00E9},
97aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0070 /* 'p' */, 0x00E9, 0x0063 /* 'c' */, 0x0068 /* 'h' */, 0x0065 /* 'e' */, 0x0072 /* 'r' */},
98aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00C4, 0x0042 /* 'B' */, 0x0308, 0x0043 /* 'C' */, 0x0308},
99aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0041 /* 'A' */, 0x0308, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
100aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0070 /* 'p' */, 0x00E9, 0x0063 /* 'c' */, 0x0068 /* 'h' */, 0x0065 /* 'e' */},
101aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0072 /* 'r' */, 0x006F /* 'o' */, 0x0302, 0x006C /* 'l' */, 0x0065 /* 'e' */},
102aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0041 /* 'A' */, 0x00E1, 0x0063 /* 'c' */, 0x0064 /* 'd' */},
103aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0041 /* 'A' */, 0x00E1, 0x0063 /* 'c' */, 0x0064 /* 'd' */},
104aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
10505fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
106aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0054 /* 'T' */, 0x0043 /* 'C' */, 0x006F /* 'o' */, 0x006D /* 'm' */, 0x0070 /* 'p' */, 0x0061 /* 'a' */, 0x0072 /* 'r' */, 0x0065 /* 'e' */, 0x0050 /* 'P' */, 0x006C /* 'l' */, 0x0061 /* 'a' */, 0x0069 /* 'i' */, 0x006E /* 'n' */},
107aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0042 /* 'B' */, 0x0063 /* 'c' */},
108aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0023 /* '#' */, 0x0042 /* 'B' */},
109aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0026 /* '&' */, 0x0062 /* 'b' */},
110aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0023 /* '#' */, 0x0063 /* 'c' */},
111aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */, 0x0064 /* 'd' */, 0x0061 /* 'a' */},
112aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00C4, 0x0062 /* 'b' */, 0x0063 /* 'c' */, 0x0064 /* 'd' */, 0x0061 /* 'a' */},
113aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00E4, 0x0062 /* 'b' */, 0x0063 /* 'c' */, 0x0064 /* 'd' */, 0x0061 /* 'a' */},
114aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00C4, 0x0062 /* 'b' */, 0x0063 /* 'c' */, 0x0064 /* 'd' */, 0x0061 /* 'a' */},
11505fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        {0x00C4, 0x0062 /* 'b' */, 0x0063 /* 'c' */, 0x0064 /* 'd' */, 0x0061 /* 'a' */},
116aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0023 /* '#' */, 0x0063 /* 'c' */},
117aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
118aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x003D /* '=' */, 0x0063 /* 'c' */},
119aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0064 /* 'd' */},
120aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00E4, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
121aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0043 /* 'C' */, 0x0048 /* 'H' */, 0x0063 /* 'c' */},
122aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00E4, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
123aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0074 /* 't' */, 0x0068 /* 'h' */, 0x00EE, 0x0073 /* 's' */},
124aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0070 /* 'p' */, 0x00E9, 0x0063 /* 'c' */, 0x0068 /* 'h' */, 0x00E9},
12505fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        {0x0061 /* 'a' */, 0x0042 /* 'B' */, 0x0043 /* 'C' */},
126aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0062 /* 'b' */, 0x0064 /* 'd' */},
127aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00E4, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
128aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x00C6, 0x0063 /* 'c' */},
129aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0042 /* 'B' */, 0x0064 /* 'd' */},
130aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00E4, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
131aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x00C6, 0x0063 /* 'c' */},
132aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0042 /* 'B' */, 0x0064 /* 'd' */},
13305fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        {0x00E4, 0x0062 /* 'b' */, 0x0063 /* 'c' */},
134aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0070 /* 'p' */, 0x00EA, 0x0063 /* 'c' */, 0x0068 /* 'h' */, 0x0065 /* 'e' */}
135aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    };                                           // 49
136aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
137aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    private static int[] results = {
138aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    //-1:LESS; 0:EQUAL; 1:GREATER
13905fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        -1,
140aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1, /*Collator::GREATER,*/
141aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
142aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        1,
143aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        1,
144aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        0,
145aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
146aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
147aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
148aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1, /*Collator::GREATER,*/                                                          /* 10 */
149aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        1,
150aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
151aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        0,
152aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
153aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        1,
154aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        1,
155aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        1,
156aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
157aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
158aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,                                                             /* 20 */
159aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
160aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
161aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
162aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        1,
163aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        1,
164aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        1,
165aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        /* Test Tertiary  > 26 */
166aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
167aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
168aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        1,
169aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,                                                             /* 30 */
170aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        1,
171aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        0,
172aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        1,
173aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
174aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
175aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
176aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        /* test identical > 36 */
177aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        0,
178aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        0,
179aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        /* test primary > 38 */
180aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        0,
181aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        0,                                                            /* 40 */
182aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
183aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        0,
184aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        0,
185aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        /* test secondary > 43 */
186aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
187aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
188aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        0,
189aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1,
19005fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        -1,
191aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        -1                                                                  // 49
192aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    };
193aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
194aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    private static char [][] testBugs = {
195aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x61},
196aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x41},
197aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65},
198aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x45},
199aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00e9},
200aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00e8},
201aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00ea},
202aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x00eb},
203aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x61},
204aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x78}
205aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    };
206aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
207aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    // 0x0300 is grave, 0x0301 is acute
208aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    // the order of elements in this array must be different than the order in CollationFrenchTest
209aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    private static char[][] testAcute = {
210aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x65},
211aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x65, 0x0301},
212aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x65, 0x0301, 0x0300},
213aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x65, 0x0300},
214aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x65, 0x0300, 0x0301},
215aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0301, 0x65},
216aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0301, 0x65, 0x0301},
217aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0301, 0x65, 0x0301, 0x0300},
218aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0301, 0x65, 0x0300},
219aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0301, 0x65, 0x0300, 0x0301},
220aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0301, 0x0300, 0x65},
221aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0301, 0x0300, 0x65, 0x0301},
222aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0301, 0x0300, 0x65, 0x0301, 0x0300},
223aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0301, 0x0300, 0x65, 0x0300},
224aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0301, 0x0300, 0x65, 0x0300, 0x0301},
225aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0300, 0x65},
226aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0300, 0x65, 0x0301},
227aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0300, 0x65, 0x0301, 0x0300},
228aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0300, 0x65, 0x0300},
229aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0300, 0x65, 0x0300, 0x0301},
230aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0300, 0x0301, 0x65},
231aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0300, 0x0301, 0x65, 0x0301},
232aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0300, 0x0301, 0x65, 0x0301, 0x0300},
233aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0300, 0x0301, 0x65, 0x0300},
234aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x65, 0x0300, 0x0301, 0x65, 0x0300, 0x0301}
235aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    };
236aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
237aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    private static char[][] testMore = {
238aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0065 /* 'e' */},
239aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        { 0x00E6},
240aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        { 0x00C6},
241aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x0061 /* 'a' */, 0x0066 /* 'f' */},
242aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x006F /* 'o' */, 0x0065 /* 'e' */},
243aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        { 0x0153},
244aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        { 0x0152},
245aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {0x006F /* 'o' */, 0x0066 /* 'f' */},
246aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    };
24705fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
248aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    private Collator myCollation = null;
24905fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
250aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    public CollationEnglishTest() {
251aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    }
25205fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
253f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Before
254f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    public void init()throws Exception {
255aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        myCollation = Collator.getInstance(Locale.ENGLISH);
256aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    }
25705fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
258aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    //performs test with strength PRIMARY
259f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Test
260aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    public void TestPrimary() {
261aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        int i;
262aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        myCollation.setStrength(Collator.PRIMARY);
263aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        for (i = 38; i < 43 ; i++) {
264aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            doTest(testSourceCases[i], testTargetCases[i], results[i]);
26505fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        }
266aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    }
26705fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
268aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    //perform test with strength SECONDARY
269f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Test
270aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    public void TestSecondary() {
271aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        int i;
272aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        myCollation.setStrength(Collator.SECONDARY);
273aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        for (i = 43; i < 49 ; i++) {
274aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            doTest(testSourceCases[i], testTargetCases[i], results[i]);
275aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        }
276aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
277aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        //test acute and grave ordering (compare to french collation)
278aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        int j;
279aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        int expected;
280aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        for (i = 0; i < testAcute.length; i++) {
281aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            for (j = 0; j < testAcute.length; j++) {
282aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                logln("i = " + i + "; j = " + j);
283aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                if (i <  j)
284aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    expected = -1;
285aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                else if (i == j)
286aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    expected = 0;
287aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                else // (i >  j)
288aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    expected = 1;
289aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                doTest(testAcute[i], testAcute[j], expected );
290aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            }
291aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        }
292aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    }
29305fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
294aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    //perform test with strength TERTIARY
295f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert    @Test
296aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    public void TestTertiary() {
297aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        int i = 0;
298aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        myCollation.setStrength(Collator.TERTIARY);
299aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        //for (i = 0; i < 38 ; i++)  //attention: there is something wrong with 36, 37.
300aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        for (i = 0; i < 38 ; i++)
301aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {
302aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            doTest(testSourceCases[i], testTargetCases[i], results[i]);
30305fa7802d0874812c234a29745586677ee5837eaFredrik Roubert        }
304aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
305aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        int j = 0;
306aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        for (i = 0; i < 10; i++)
307aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {
308aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            for (j = i+1; j < 10; j++)
309aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            {
310aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                doTest(testBugs[i], testBugs[j], -1);
311aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            }
312aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        }
313aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
314aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        //test more interesting cases
315aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        int expected;
316aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        for (i = 0; i < testMore.length; i++)
317aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {
318aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            for (j = 0; j < testMore.length; j++)
319aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            {
320aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                if (i <  j)
321aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    expected = -1;
322aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                else if (i == j)
323aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    expected = 0;
324aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                else // (i >  j)
325aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    expected = 1;
326aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                doTest(testMore[i], testMore[j], expected );
327aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            }
328aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        }
329aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    }
33005fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
331aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin   // main test routine, tests rules defined by the "en" locale
332aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    private void doTest(char[] source, char[] target, int result){
33305fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
334aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        String s = new String(source);
335aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        String t = new String(target);
336aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        int compareResult = myCollation.compare(s, t);
337aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        CollationKey sortKey1, sortKey2;
338aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        sortKey1 = myCollation.getCollationKey(s);
339aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        sortKey2 = myCollation.getCollationKey(t);
340aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        int keyResult = sortKey1.compareTo(sortKey2);
341aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        reportCResult(s, t, sortKey1, sortKey2, compareResult, keyResult, compareResult, result);
34205fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
343aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    }
34405fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
345aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    private void reportCResult( String source, String target, CollationKey sourceKey, CollationKey targetKey,
346aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                int compareResult, int keyResult, int incResult, int expectedResult ){
347aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        if (expectedResult < -1 || expectedResult > 1)
348aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        {
349aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            errln("***** invalid call to reportCResult ****");
350aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            return;
351aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        }
352aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
353aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        boolean ok1 = (compareResult == expectedResult);
354aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        boolean ok2 = (keyResult == expectedResult);
355aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        boolean ok3 = (incResult == expectedResult);
356aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
357aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        if (ok1 && ok2 && ok3 && !isVerbose()){
35805fa7802d0874812c234a29745586677ee5837eaFredrik Roubert            return;
359aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        }else{
360aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            String msg1 = ok1? "Ok: compare(\"" : "FAIL: compare(\"";
361aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            String msg2 = "\", \"";
362aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            String msg3 = "\") returned ";
363aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            String msg4 = "; expected ";
36405fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
365aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            String sExpect = new String("");
366aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            String sResult = new String("");
367aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            sResult = CollationTest.appendCompareResult(compareResult, sResult);
368aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            sExpect = CollationTest.appendCompareResult(expectedResult, sExpect);
369aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            if (ok1) {
370aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                logln(msg1 + source + msg2 + target + msg3 + sResult);
371aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            } else {
372aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                errln(msg1 + source + msg2 + target + msg3 + sResult + msg4 + sExpect);
373aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            }
37405fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
375aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            msg1 = ok2 ? "Ok: key(\"" : "FAIL: key(\"";
376aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            msg2 = "\").compareTo(key(\"";
377aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            msg3 = "\")) returned ";
378aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            sResult = CollationTest.appendCompareResult(keyResult, sResult);
379aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            if (ok2) {
380aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                logln(msg1 + source + msg2 + target + msg3 + sResult);
381aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            } else {
382aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                errln(msg1 + source + msg2 + target + msg3 + sResult + msg4 + sExpect);
383aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                msg1 = "  ";
384aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                msg2 = " vs. ";
385aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                errln(msg1 + CollationTest.prettify(sourceKey) + msg2 + CollationTest.prettify(targetKey));
386aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            }
38705fa7802d0874812c234a29745586677ee5837eaFredrik Roubert
388aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            msg1 = ok3 ? "Ok: incCompare(\"" : "FAIL: incCompare(\"";
389aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            msg2 = "\", \"";
390aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            msg3 = "\") returned ";
391aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
392aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            sResult = CollationTest.appendCompareResult(incResult, sResult);
393aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
394aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            if (ok3) {
395aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                logln(msg1 + source + msg2 + target + msg3 + sResult);
396aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            } else {
397aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                errln(msg1 + source + msg2 + target + msg3 + sResult + msg4 + sExpect);
39805fa7802d0874812c234a29745586677ee5837eaFredrik Roubert            }
399aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        }
400aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    }
401aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin }
402