aboutsummaryrefslogtreecommitdiff
path: root/test/java/text/Collator/Test4401726.java
blob: 6f9e9ed945e1dae866c352461f245b9c0610ba4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/*
 * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

/**
 * @test
 * @bug 4401726
 * @author John O'Conner
 * @library /java/text/testlib
 * @summary Regression tests for Collation and associated classes
 */


import java.text.*;
import java.util.Locale;
import java.util.Vector;

public class Test4401726 extends CollatorTest {

    public static void main(String[] args) throws Exception {
        new Test4401726().run(args);
    }

   public void TestSetOffSet() {

       int[] expected = {0, -1, 65536};
       int[] actual = new int[expected.length];

        try {
            String rule = "< a, A < d; D";

            RuleBasedCollator rbc = new RuleBasedCollator(rule);
            String str = "aD";
            CollationElementIterator iterator =
                rbc.getCollationElementIterator(str);

            iterator.setOffset(0);
            actual[0] = iterator.getOffset();
            actual[1] = iterator.previous();
            iterator.setOffset(0);
            actual[2] = iterator.next();

            if (compareArray(expected, actual) == false) {
                errln("Failed.");
            }

            str = "a";
            iterator = rbc.getCollationElementIterator(str);
            iterator.setOffset(0);
            actual[0] = iterator.getOffset();
            actual[1] = iterator.previous();
            iterator.setOffset(0);
            actual[2] = iterator.next();

            if (compareArray(expected, actual) == false) {
                errln("Failed.");
            }

        } catch (ParseException e) {
            errln("Unexpected ParseException: " + e);
        }


    }

    boolean compareArray(int[] expected, int[] actual) {
        boolean retVal = false;
        if (expected.length == actual.length) {
            int errors = 0;
            for(int x=0; x< expected.length; ++x) {
                if (expected[x] != actual[x]) {
                    ++errors;
                }
            }
            if (errors == 0) retVal = true;
        }
        return retVal;
    }
}