1aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin/* GENERATED SOURCE. DO NOT MODIFY. */
2aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin/*
3aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin*******************************************************************************
4aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin*   Copyright (C) 2001-2007, International Business Machines
5aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin*   Corporation and others.  All Rights Reserved.
6aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin*******************************************************************************
7aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin*/
8aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
9aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffinpackage android.icu.dev.test.bidi;
10aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
11aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffinimport android.icu.text.Bidi;
123a45e58d9461ee00f295ca8a6a29ef0860559e7ePaul Duffinimport org.junit.runner.RunWith;
133a45e58d9461ee00f295ca8a6a29ef0860559e7ePaul Duffinimport android.icu.junit.IcuTestFmwkRunner;
14aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
15aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin/**
16aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin * Regression test for variants to the UBA.
17aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin *
18aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin * @author Lina Kemmel, Matitiahu Allouche
19aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin */
20aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
213a45e58d9461ee00f295ca8a6a29ef0860559e7ePaul Duffin@RunWith(IcuTestFmwkRunner.class)
22aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffinpublic class TestReorderRunsOnly extends BidiTest {
23aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
24aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
25aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    static class TestCase {
26aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        String textIn;
27aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        String textOut[][];
28aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        int noroundtrip[];
29aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
30aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        TestCase(String in, String[][] out, int[] nrd) {
31aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            this.textIn = in;
32aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            this.textOut = out;
33aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            this.noroundtrip = nrd;
34aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        }
35aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    }
36aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
37aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    static final TestCase testCases[] = {
38aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("ab 234 896 de",   // 0
39aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"de 896 ab 234", "de 896 ab 234"},
40aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"ab 234 @896@ de", "de 896 ab 234"}},
41aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
42aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("abcGHI",          // 1
43aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"GHIabc", "GHIabc"}, {"GHIabc", "GHIabc"}},
44aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
45aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("a.>67->",         // 2
46aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"<-67<.a", "<-67<.a"}, {"<-67<.a", "<-67<.a"}},
47aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
48aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("-=%$123/ *",      // 3
49aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"* /%$123=-", "* /%$123=-"},
50aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"* /%$123=-", "* /%$123=-"}},
51aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
52aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("abc->12..>JKL",   // 4
53aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"JKL<..12<-abc", "JKL<..abc->12"},
54aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"JKL<..12<-abc", "JKL<..abc->12"}},
55aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
56aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("JKL->12..>abc",   // 5
57aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"abc<..JKL->12", "abc<..12<-JKL"},
58aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"abc<..JKL->12", "abc<..12<-JKL"}},
59aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
60aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("123->abc",        // 6
61aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"abc<-123", "abc<-123"},
62aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"abc&<-123", "abc<-123"}},
63aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {1, 0}),
64aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("123->JKL",        // 7
65aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"JKL<-123", "123->JKL"},
66aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"JKL<-123", "JKL<-@123"}},
67aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 1}),
68aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("*>12.>34->JKL",   // 8
69aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"JKL<-34<.12<*", "12.>34->JKL<*"},
70aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"JKL<-34<.12<*", "JKL<-@34<.12<*"}},
71aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 1}),
72aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("*>67.>89->JKL",   // 9
73aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"67.>89->JKL<*", "67.>89->JKL<*"},
74aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"67.>89->JKL<*", "67.>89->JKL<*"}},
75aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
76aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("* /abc-=$%123",   // 10
77aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"$%123=-abc/ *", "abc-=$%123/ *"},
78aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"$%123=-abc/ *", "abc-=$%123/ *"}},
79aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
80aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("* /$%def-=123",   // 11
81aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"123=-def%$/ *", "def-=123%$/ *"},
82aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"123=-def%$/ *", "def-=123%$/ *"}},
83aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
84aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("-=GHI* /123%$",   // 12
85aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"GHI* /123%$=-", "123%$/ *GHI=-"},
86aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"GHI* /123%$=-", "123%$/ *GHI=-"}},
87aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
88aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("-=%$JKL* /123",   // 13
89aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"JKL* /%$123=-", "123/ *JKL$%=-"},
90aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"JKL* /%$123=-", "123/ *JKL$%=-"}},
91aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
92aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("ab =#CD *?450",   // 14
93aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"CD *?450#= ab", "450?* CD#= ab"},
94aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"CD *?450#= ab", "450?* CD#= ab"}},
95aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
96aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("ab 234 896 de",   // 15
97aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"de 896 ab 234", "de 896 ab 234"},
98aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"ab 234 @896@ de", "de 896 ab 234"}},
99aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
100aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("abc-=%$LMN* /123",// 16
101aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"LMN* /%$123=-abc", "123/ *LMN$%=-abc"},
102aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"LMN* /%$123=-abc", "123/ *LMN$%=-abc"}},
103aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0}),
104aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("123->JKL&MN&P",   // 17
105aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"JKLMNP<-123", "123->JKLMNP"},
106aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"JKLMNP<-123", "JKLMNP<-@123"}},
107aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 1}),
108aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        new TestCase("123",             // 18   just one run
109aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new String[][] {{"123", "123"},
110aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                     {"123", "123"}},
111aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                     new int[] {0, 0})
112aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    };
113aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
114aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    public void testReorderRunsOnly() {
115aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
116aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        Bidi bidi = new Bidi();
117aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        Bidi bidiL2V = new Bidi();
118aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        String src, dest, visual1, visual2;
119aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        String srcU16, destU16, visual1U16, visual2U16;
120aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        int option, i, j, nCases;
121aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        byte level;
122aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
123aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        logln("\nEntering TestReorderRunsOnly\n");
124aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        bidi.setReorderingMode(Bidi.REORDER_RUNS_ONLY);
125aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        bidiL2V.setReorderingOptions(Bidi.OPTION_REMOVE_CONTROLS);
126aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
127aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        for (option = 0; option < 2; option++) {
128aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            bidi.setReorderingOptions(option == 0 ? Bidi.OPTION_REMOVE_CONTROLS
129aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                                  : Bidi.OPTION_INSERT_MARKS);
130aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            for (i = 0, nCases = testCases.length; i < nCases; i++) {
131aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                src = testCases[i].textIn;
132aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                srcU16 = pseudoToU16(src);
133aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                for (j = 0; j < 2; j++) {
134aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    logln("Now doing test for option " + option +
135aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                          ", case " + i + ", level " + j);
136aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    level = (byte)j;
137aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    bidi.setPara(srcU16, level, null);
138aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    destU16 = bidi.writeReordered(Bidi.DO_MIRRORING);
139aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    dest = u16ToPseudo(destU16);
140aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    checkWhatYouCan(bidi, src, dest);
141aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    assertEquals("Reorder runs only failed for case " + i,
142aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                 testCases[i].textOut[option][level],
143aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                 dest, src, null, null, Byte.toString(level));
144aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
145aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    if ((option == 0) && (testCases[i].noroundtrip[level] > 0)) {
146aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                        continue;
147aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    }
148aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    bidiL2V.setPara(srcU16, level, null);
149aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    visual1U16 = bidiL2V.writeReordered(Bidi.DO_MIRRORING);
150aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    visual1 = u16ToPseudo(visual1U16);
151aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    checkWhatYouCan(bidiL2V, src, visual1);
152aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    bidiL2V.setPara(destU16, (byte)(level^1), null);
153aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    visual2U16 = bidiL2V.writeReordered(Bidi.DO_MIRRORING);
154aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    visual2 = u16ToPseudo(visual2U16);
155aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    checkWhatYouCan(bidiL2V, dest, visual2);
156aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                    assertEquals("Round trip failed for case " + i,
157aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                 visual1, visual2, src,
158aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                 "REORDER_RUNS_ONLY (2)",
159aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                 option == 0 ? "0" : "OPTION_INSERT_MARKS",
160aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                                 Byte.toString(level));
161aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin                }
162aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            }
163aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        }
164aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
165aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        /* test with null or empty text */
166aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        int paras;
167aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        bidi.setPara((String)null, Bidi.LTR, null);
168aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        paras = bidi.countParagraphs();
169aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        assertEquals("\nInvalid number of paras #1 (should be 0): ", 0, paras);
170aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        bidi.setPara((char[])null, Bidi.LTR, null);
171aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        paras = bidi.countParagraphs();
172aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        assertEquals("\nInvalid number of paras #2 (should be 0): ", 0, paras);
173aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        bidi.setPara("", Bidi.LTR, null);
174aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        paras = bidi.countParagraphs();
175aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        assertEquals("\nInvalid number of paras #3 (should be 0): ", 0, paras);
176aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        bidi.setPara(new char[0], Bidi.LTR, null);
177aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        paras = bidi.countParagraphs();
178aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        assertEquals("\nInvalid number of paras #4 (should be 0): ", 0, paras);
179aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
180aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        logln("\nExiting TestReorderRunsOnly\n");
181aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    }
182aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
183aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
184aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    public static void main(String[] args) {
185aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        try {
186aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            new TestReorderRunsOnly().run(args);
187aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        }
188aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        catch (Exception e) {
189aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin            System.out.println(e);
190aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin        }
191aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin    }
192aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
193aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin}
194aefe4d1f8f1773ead1a52f7a5d2c9e0009353600Paul Duffin
195