155dfcd8b9609f112b0542af6a705080d98e00d2accornelius/* 2994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * this work for additional information regarding copyright ownership. 5994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * (the "License"); you may not use this file except in compliance with 7994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * the License. You may obtain a copy of the License at 855dfcd8b9609f112b0542af6a705080d98e00d2accornelius * 9994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 1055dfcd8b9609f112b0542af6a705080d98e00d2accornelius * 11994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * See the License for the specific language governing permissions and 15994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * limitations under the License. 16994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 17994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughespackage org.apache.harmony.tests.java.text; 18994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 19994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.text.Collator; 20994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.text.ParseException; 21994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.text.RuleBasedCollator; 22994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.util.Locale; 23994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 24994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughespublic class CollatorTest extends junit.framework.TestCase { 25994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 26994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_clone() { 27994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Collator c = Collator.getInstance(Locale.GERMAN); 28994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Collator c2 = (Collator) c.clone(); 29994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Clones answered false to equals", c.equals(c2)); 30994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Clones were equivalent", c != c2); 31994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 32994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 33994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_compareLjava_lang_ObjectLjava_lang_Object() { 34994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Collator c = Collator.getInstance(Locale.FRENCH); 35994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Object o, o2; 36994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 37994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.setStrength(Collator.IDENTICAL); 38994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "E"; 39994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "F"; 40994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("a) Failed on primary difference", c.compare(o, o2) < 0); 41994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "e"; 42994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "\u00e9"; 43994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("a) Failed on secondary difference", c.compare(o, o2) < 0); 44994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "e"; 45994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "E"; 46994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("a) Failed on tertiary difference", c.compare(o, o2) < 0); 47994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "\u0001"; 48994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "\u0002"; 49994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("a) Failed on identical", c.compare(o, o2) < 0); 50994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "e"; 51994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "e"; 52994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("a) Failed on equivalence", 0, c.compare(o, o2)); 53994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("a) Failed on primary expansion", 54994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.compare("\u01db", "v") < 0); 55994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 56994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.setStrength(Collator.TERTIARY); 57994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "E"; 58994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "F"; 59994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("b) Failed on primary difference", c.compare(o, o2) < 0); 60994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "e"; 61994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "\u00e9"; 62994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("b) Failed on secondary difference", c.compare(o, o2) < 0); 63994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "e"; 64994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "E"; 65994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("b) Failed on tertiary difference", c.compare(o, o2) < 0); 66994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "\u0001"; 67994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "\u0002"; 68994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("b) Failed on identical", 0, c.compare(o, o2)); 69994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "e"; 70994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "e"; 71994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("b) Failed on equivalence", 0, c.compare(o, o2)); 72994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 73994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.setStrength(Collator.SECONDARY); 74994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "E"; 75994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "F"; 76994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("c) Failed on primary difference", c.compare(o, o2) < 0); 77994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "e"; 78994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "\u00e9"; 79994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("c) Failed on secondary difference", c.compare(o, o2) < 0); 80994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "e"; 81994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "E"; 82994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("c) Failed on tertiary difference", 0, c.compare(o, o2)); 83994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "\u0001"; 84994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "\u0002"; 85994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("c) Failed on identical", 0, c.compare(o, o2)); 86994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "e"; 87994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "e"; 88994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("c) Failed on equivalence", 0, c.compare(o, o2)); 89994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 90994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.setStrength(Collator.PRIMARY); 91994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "E"; 92994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "F"; 93994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("d) Failed on primary difference", c.compare(o, o2) < 0); 94994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "e"; 95994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "\u00e9"; 96994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("d) Failed on secondary difference", 0, c.compare(o, o2)); 97994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "e"; 98994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "E"; 99994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("d) Failed on tertiary difference", 0, c.compare(o, o2)); 100994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "\u0001"; 101994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "\u0002"; 102994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("d) Failed on identical", 0, c.compare(o, o2)); 103994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o = "e"; 104994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes o2 = "e"; 105994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("d) Failed on equivalence", 0, c.compare(o, o2)); 106994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 107994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes try { 108994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.compare("e", new StringBuffer("Blah")); 109994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } catch (ClassCastException e) { 110994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // correct 111994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes return; 112994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 113994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes fail("Failed to throw ClassCastException"); 114994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 115994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 116994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_equalsLjava_lang_Object() { 117994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Collator c = Collator.getInstance(Locale.ENGLISH); 118994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Collator c2 = (Collator) c.clone(); 119994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Cloned collators not equal", c.equals(c2)); 120994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c2.setStrength(Collator.SECONDARY); 121994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Collators with different strengths equal", !c.equals(c2)); 122994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 123994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 124994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_equalsLjava_lang_StringLjava_lang_String() { 125994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Collator c = Collator.getInstance(Locale.FRENCH); 126994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 127994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.setStrength(Collator.IDENTICAL); 128994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("a) Failed on primary difference", !c.equals("E", "F")); 129994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("a) Failed on secondary difference", !c 130994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes .equals("e", "\u00e9")); 131994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("a) Failed on tertiary difference", !c.equals("e", "E")); 132994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("a) Failed on identical", !c.equals("\u0001", "\u0002")); 133994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("a) Failed on equivalence", c.equals("e", "e")); 134994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 135994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.setStrength(Collator.TERTIARY); 136994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("b) Failed on primary difference", !c.equals("E", "F")); 137994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("b) Failed on secondary difference", !c 138994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes .equals("e", "\u00e9")); 139994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("b) Failed on tertiary difference", !c.equals("e", "E")); 140994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("b) Failed on identical", c.equals("\u0001", "\u0002")); 141994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("b) Failed on equivalence", c.equals("e", "e")); 142994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 143994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.setStrength(Collator.SECONDARY); 144994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("c) Failed on primary difference", !c.equals("E", "F")); 145994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("c) Failed on secondary difference", !c 146994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes .equals("e", "\u00e9")); 147994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("c) Failed on tertiary difference", c.equals("e", "E")); 148994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("c) Failed on identical", c.equals("\u0001", "\u0002")); 149994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("c) Failed on equivalence", c.equals("e", "e")); 150994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 151994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.setStrength(Collator.PRIMARY); 152994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("d) Failed on primary difference", !c.equals("E", "F")); 153994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("d) Failed on secondary difference", c.equals("e", "\u00e9")); 154994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("d) Failed on tertiary difference", c.equals("e", "E")); 155994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("d) Failed on identical", c.equals("\u0001", "\u0002")); 156994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("d) Failed on equivalence", c.equals("e", "e")); 157994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 158994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 159994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void failing_test_getAvailableLocales() { 160994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Locale[] locales = Collator.getAvailableLocales(); 161994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("No locales", locales.length > 0); 162994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes boolean english = false, german = false; 163994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes for (int i = locales.length; --i >= 0;) { 164994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes if (locales[i].equals(Locale.ENGLISH)) 165994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes english = true; 166994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes if (locales[i].equals(Locale.GERMAN)) 167994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes german = true; 168994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Output the working locale to help diagnose a hang 169994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Collator c1 = Collator.getInstance(locales[i]); 170994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Doesn't work", c1.compare("a", "b") < 0); 171994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Wrong decomposition", 172994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c1.getDecomposition() == Collator.NO_DECOMPOSITION); 173994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Wrong strength", c1.getStrength() == Collator.TERTIARY); 174994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes if (c1 instanceof RuleBasedCollator) { 175994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes try { 176994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes new RuleBasedCollator(((RuleBasedCollator) c1).getRules()); 177994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } catch (ParseException e) { 178994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes fail("ParseException"); 179994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 180994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // assertTrue("Can't recreate: " + locales[i], temp.equals(c1)); 181994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 182994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 183994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Missing locales", english && german); 184994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 185994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 186994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void failing_test_getDecomposition() { 187994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes RuleBasedCollator collator; 188994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes try { 189994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes collator = new RuleBasedCollator("; \u0300 < a, A < b < c < d"); 190994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } catch (ParseException e) { 191994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes fail("ParseException"); 192994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes return; 193994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 194994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Wrong default", 195994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes collator.getDecomposition() == Collator.CANONICAL_DECOMPOSITION); 196994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 197994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 198994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_getInstance() { 199994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Collator c1 = Collator.getInstance(); 200994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Collator c2 = Collator.getInstance(Locale.getDefault()); 201994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Wrong locale", c1.equals(c2)); 202994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 203994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 204994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_getInstanceLjava_util_Locale() { 205994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Used to test", true); 206994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 207994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 20855dfcd8b9609f112b0542af6a705080d98e00d2accornelius public void test_getStrength() throws ParseException { 20955dfcd8b9609f112b0542af6a705080d98e00d2accornelius RuleBasedCollator collator = new RuleBasedCollator("&9 ; \u0300 < a, A < b < c < d"); 210994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Wrong default", collator.getStrength() == Collator.TERTIARY); 211994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 212994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 213994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void failing_test_setDecompositionI() { 214994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Collator c = Collator.getInstance(Locale.FRENCH); 215994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.setStrength(Collator.IDENTICAL); 216994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.setDecomposition(Collator.NO_DECOMPOSITION); 217994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Collator should not be using decomposition", !c.equals( 218994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "\u212B", "\u00C5")); // "ANGSTROM SIGN" and "LATIN CAPITAL 219994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // LETTER A WITH RING ABOVE" 220994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.setDecomposition(Collator.CANONICAL_DECOMPOSITION); 221994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Collator should be using decomposition", c.equals("\u212B", 222994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "\u00C5")); // "ANGSTROM SIGN" and "LATIN CAPITAL LETTER A WITH 223994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // RING ABOVE" 224994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Should not be equal under canonical decomposition", !c 225994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes .equals("\u2163", "IV")); // roman number "IV" 226994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes c.setDecomposition(Collator.FULL_DECOMPOSITION); 227994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Should be equal under full decomposition", c.equals( 228994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "\u2163", "IV")); // roman number "IV" 229994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 230994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 231994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_setStrengthI() { 232994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Used to test", true); 233994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 234994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes} 235