1/*
2 * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24/*
25 * @test
26 * @bug 4930708 4174436 5008498
27 * @library /java/text/testlib
28 * @summary test Danish Collation
29 * @modules jdk.localedata
30 */
31/*
32(C) Copyright Taligent, Inc. 1996 - All Rights Reserved
33(C) Copyright IBM Corp. 1996 - All Rights Reserved
34
35  The original version of this source code and documentation is copyrighted and
36owned by Taligent, Inc., a wholly-owned subsidiary of IBM. These materials are
37provided under terms of a License Agreement between Taligent and Sun. This
38technology is protected by multiple US and International patents. This notice and
39attribution to Taligent may not be removed.
40  Taligent is a registered trademark of Taligent, Inc.
41*/
42
43import java.util.Locale;
44import java.text.Collator;
45
46// Quick dummy program for printing out test results
47public class DanishTest extends CollatorTest {
48
49    public static void main(String[] args) throws Exception {
50        new DanishTest().run(args);
51    }
52
53    /*
54     * Data for TestPrimary()
55     */
56    private static final String[] primarySourceData = {
57        "Lvi",
58        "L\u00E4vi",
59        "L\u00FCbeck",
60        "ANDR\u00C9",
61        "ANDRE",
62        "ANNONCERER"
63    };
64
65    private static final String[] primaryTargetData = {
66            "Lwi",
67            "L\u00F6wi",
68            "Lybeck",
69            "ANDR\u00E9",
70            "ANDR\u00C9",
71            "ANN\u00D3NCERER"
72    };
73
74    private static final int[] primaryResults = {
75            -1, -1, 0, 0, 0, 0
76    };
77
78    /*
79     * Data for TestTertiary()
80     */
81    private static final String[] tertiarySourceData = {
82            "Luc",
83            "luck",
84            "L\u00FCbeck",
85            "L\u00E4vi",
86            "L\u00F6ww"
87    };
88
89    private static final String[] tertiaryTargetData = {
90            "luck",
91            "L\u00FCbeck",
92            "lybeck",
93            "L\u00F6we",
94            "mast"
95    };
96
97    private static final int[] tertiaryResults = {
98            -1, -1,  1, -1, -1
99    };
100
101    /*
102     * Data for TestExtra()
103     */
104    private static final String[] testData = {
105            "A/S",
106            "ANDRE",
107            "ANDR\u00C9", // E-acute
108            "ANDR\u00C8", // E-grave
109            "ANDR\u00E9", // e-acute
110            "ANDR\u00EA", // e-circ
111            "Andre",
112            "Andr\u00E9", // e-acute
113            "\u00C1NDRE", // A-acute
114            "\u00C0NDRE", // A-grave
115            "andre",
116            "\u00E1ndre", // a-acute
117            "\u00E0ndre", // a-grave
118            "ANDREAS",
119            "ANNONCERER",
120            "ANN\u00D3NCERER", // O-acute
121            "annoncerer",
122            "ann\u00F3ncerer", // o-acute
123            "AS",
124            "A\u00e6RO", // ae-ligature
125            "CA",
126            "\u00C7A", // C-cedilla
127            "CB",
128            "\u00C7C", // C-cedilla
129            "D.S.B.",
130            "DA",
131            "DB",
132            "\u00D0ORA", // capital eth
133            "DSB",
134            "\u00D0SB", // capital eth
135            "DSC",
136            "EKSTRA_ARBEJDE",
137            "EKSTRABUD",
138            "H\u00D8ST",  // could the 0x00D8 be 0x2205?
139            "HAAG",
140            "H\u00C5NDBOG", // A-ring
141            "HAANDV\u00C6RKSBANKEN", // AE-ligature
142            "INTERNETFORBINDELSE",
143            "Internetforbindelse",
144            "\u00CDNTERNETFORBINDELSE", // I-acute
145            "internetforbindelse",
146            "\u00EDnternetforbindelse", // i-acute
147            "Karl",
148            "karl",
149            "NIELSEN",
150            "NIELS J\u00D8RGEN", // O-slash
151            "NIELS-J\u00D8RGEN", // O-slash
152            "OERVAL",
153            "\u0152RVAL", // OE-ligature
154            "\u0153RVAL", // oe-ligature
155            "R\u00C9E, A", // E-acute
156            "REE, B",
157            "R\u00C9E, L", // E-acute
158            "REE, V",
159            "SCHYTT, B",
160            "SCHYTT, H",
161            "SCH\u00DCTT, H", // U-diaeresis
162            "SCHYTT, L",
163            "SCH\u00DCTT, M", // U-diaeresis
164            "SS",
165            "ss",
166            "\u00DF", // sharp S
167            "SSA",
168            "\u00DFA", // sharp S
169            "STOREK\u00C6R", // AE-ligature
170            "STORE VILDMOSE",
171            "STORMLY",
172            "STORM PETERSEN",
173            "THORVALD",
174            "THORVARDUR",
175            "\u00DEORVAR\u0110UR", //  capital thorn, capital d-stroke(like eth) (sami)
176            "THYGESEN",
177            "VESTERG\u00C5RD, A",
178            "VESTERGAARD, A",
179            "VESTERG\u00C5RD, B",                // 50
180            "Westmalle",
181            "YALLE",
182            "Yderligere",
183            "\u00DDderligere", // Y-acute
184            "\u00DCderligere", // U-diaeresis
185            "\u00FDderligere", // y-acute
186            "\u00FCderligere", // u-diaeresis
187            "U\u0308ruk-hai",
188            "ZORO",
189            "\u00C6BLE",  // AE-ligature
190            "\u00E6BLE",  // ae-ligature
191            "\u00C4BLE",  // A-diaeresis
192            "\u00E4BLE",  // a-diaeresis
193            "\u00D8BERG", // O-stroke
194            "\u00F8BERG", // o-stroke
195            "\u00D6BERG", // O-diaeresis
196            "\u00F6BERG"  // o-diaeresis
197    };
198
199    public void TestPrimary() {
200        doTest(myCollation, Collator.PRIMARY,
201               primarySourceData, primaryTargetData, primaryResults);
202    }
203
204    public void TestTertiary() {
205        doTest(myCollation, Collator.TERTIARY,
206               tertiarySourceData, tertiaryTargetData, tertiaryResults);
207
208        for (int i = 0; i < testData.length-1; i++) {
209            for (int j = i+1; j < testData.length; j++) {
210                doTest(myCollation, testData[i], testData[j], -1);
211            }
212        }
213    }
214
215    private final Collator myCollation = Collator.getInstance(new Locale("da", "", ""));
216}
217