1994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes/* 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 8994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * 9994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * 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 Hughes 18994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughespackage org.apache.harmony.tests.java.text; 19994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 20994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.text.ChoiceFormat; 21994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.text.FieldPosition; 22994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.text.MessageFormat; 23994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport java.text.ParsePosition; 2497a3d514797ffddba65aaa50e352538820a52078Tobias Thiererimport java.util.Arrays; 25de75c0aa34c7db47ddec1704e94fa05c54687705Narayan Kamathimport java.util.Locale; 26994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 27994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughesimport junit.framework.TestCase; 28994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 29994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughespublic class ChoiceFormatTest extends TestCase { 30994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 31994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes double[] limits = new double[] { 0, 1, ChoiceFormat.nextDouble(1), 32994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat.nextDouble(2) }; 33994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 34994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String[] formats = new String[] { "Less than one", "one", 35994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "Between one and two", "Greater than two" }; 36994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 37994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat f1 = new ChoiceFormat(limits, formats); 38994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 39994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 40994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#ChoiceFormat(double[], java.lang.String[]) 41994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 42994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_Constructor$D$Ljava_lang_String() { 43994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Test for method java.text.ChoiceFormat(double [], java.lang.String 44994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // []) 45994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String formattedString; 46994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes double[] appleLimits = { 1, 2, 3, 4, 5 }; 47994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String[] appleFormats = { "Tiny Apple", "Small Apple", "Medium Apple", 48994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "Large Apple", "Huge Apple" }; 49994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat cf = new ChoiceFormat(appleLimits, appleFormats); 50994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 51994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(Double.NEGATIVE_INFINITY); 52994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("a) Incorrect format returned: " + formattedString, 53994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Tiny Apple")); 54994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(0.5d); 55994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("b) Incorrect format returned: " + formattedString, 56994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Tiny Apple")); 57994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(1d); 58994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("c) Incorrect format returned: " + formattedString, 59994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Tiny Apple")); 60994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(1.5d); 61994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("d) Incorrect format returned: " + formattedString, 62994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Tiny Apple")); 63994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(2d); 64994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("e) Incorrect format returned: " + formattedString, 65994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Small Apple")); 66994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(2.5d); 67994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("f) Incorrect format returned: " + formattedString, 68994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Small Apple")); 69994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(3d); 70994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("g) Incorrect format returned: " + formattedString, 71994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Medium Apple")); 72994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(4d); 73994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("h) Incorrect format returned: " + formattedString, 74994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Large Apple")); 75994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(5d); 76994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("i) Incorrect format returned: " + formattedString, 77994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Huge Apple")); 78994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(5.5d); 79994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("j) Incorrect format returned: " + formattedString, 80994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Huge Apple")); 81994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(6.0d); 82994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("k) Incorrect format returned: " + formattedString, 83994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Huge Apple")); 84994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(Double.POSITIVE_INFINITY); 85994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("l) Incorrect format returned: " + formattedString, 86994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Huge Apple")); 87994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 88994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 89994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 90994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#ChoiceFormat(java.lang.String) 91994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 92994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_ConstructorLjava_lang_String() { 93994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Test for method java.text.ChoiceFormat(java.lang.String) 94994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String formattedString; 95994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String patternString = "-2#Inverted Orange| 0#No Orange| 0<Almost No Orange| 1#Normal Orange| 2#Expensive Orange"; 96994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat cf = new ChoiceFormat(patternString); 97994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 98994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(Double.NEGATIVE_INFINITY); 99994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("a) Incorrect format returned: " + formattedString, 100994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Inverted Orange")); 101994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(-3); 102994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("b) Incorrect format returned: " + formattedString, 103994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Inverted Orange")); 104994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(-2); 105994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("c) Incorrect format returned: " + formattedString, 106994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Inverted Orange")); 107994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(-1); 108994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("d) Incorrect format returned: " + formattedString, 109994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Inverted Orange")); 110994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(-0); 111994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("e) Incorrect format returned: " + formattedString, 112994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("No Orange")); 113994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(0); 114994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("f) Incorrect format returned: " + formattedString, 115994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("No Orange")); 116994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(0.1); 117994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("g) Incorrect format returned: " + formattedString, 118994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Almost No Orange")); 119994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(1); 120994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("h) Incorrect format returned: " + formattedString, 121994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Normal Orange")); 122994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(1.5); 123994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("i) Incorrect format returned: " + formattedString, 124994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Normal Orange")); 125994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(2); 126994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("j) Incorrect format returned: " + formattedString, 127994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Expensive Orange")); 128994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(3); 129994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("k) Incorrect format returned: " + formattedString, 130994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Expensive Orange")); 131994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString = cf.format(Double.POSITIVE_INFINITY); 132994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("l) Incorrect format returned: " + formattedString, 133994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes formattedString.equals("Expensive Orange")); 134994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 135994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 136994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 137994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 138994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#applyPattern(java.lang.String) 139994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 140994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_applyPatternLjava_lang_String() { 141994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Test for method void 142994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // java.text.ChoiceFormat.applyPattern(java.lang.String) 143994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat f = (ChoiceFormat) f1.clone(); 144994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes f.applyPattern("0#0|1#1"); 145994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Incorrect limits", java.util.Arrays.equals(f.getLimits(), 146994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes new double[] { 0, 1 })); 147994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Incorrect formats", java.util.Arrays.equals(f.getFormats(), 148994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes new String[] { "0", "1" })); 149994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 150994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes //Regression for Harmony 540 151994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes double[] choiceLimits = { -1, 0, 1, ChoiceFormat.nextDouble(1) }; 152994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String[] choiceFormats = { "is negative", "is zero or fraction", 153994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "is one", "is more than 1" }; 154994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 155994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes f = new ChoiceFormat(""); 156994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes f.applyPattern("-1#is negative|0#is zero or fraction|1#is one|1<is more than 1"); 157994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Incorrect limits", java.util.Arrays.equals(f.getLimits(), 158994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes choiceLimits)); 159994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Incorrect formats", java.util.Arrays.equals(f.getFormats(), 160994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes choiceFormats)); 161994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 162994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes f = new ChoiceFormat(""); 163994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes try { 164994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes f.applyPattern("-1#is negative|0#is zero or fraction|-1#is one|1<is more than 1"); 165994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes fail("Expected IllegalArgumentException"); 166994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } catch (IllegalArgumentException e) { 167994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Expected 168994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 169994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 170994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes f = new ChoiceFormat(""); 171994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes try { 172994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes f.applyPattern("-1is negative|0#is zero or fraction|1#is one|1<is more than 1"); 173994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes fail("Expected IllegalArgumentException"); 174994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } catch (IllegalArgumentException e) { 175994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Expected 176994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 177994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 178994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes f = new ChoiceFormat(""); 179994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes f.applyPattern("-1<is negative|0#is zero or fraction|1#is one|1<is more than 1"); 180994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes choiceLimits[0] = ChoiceFormat.nextDouble(-1); 181994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Incorrect limits", java.util.Arrays.equals(f.getLimits(), 182994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes choiceLimits)); 183994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Incorrect formats", java.util.Arrays.equals(f.getFormats(), 184994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes choiceFormats)); 185994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 186994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes f = new ChoiceFormat(""); 187994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes f.applyPattern("-1#is negative|0#is zero or fraction|1#is one|1<is more than 1"); 188994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String str = "org.apache.harmony.tests.java.text.ChoiceFormat"; 189994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes f.applyPattern(str); 190994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String ptrn = f.toPattern(); 191994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Return value should be empty string for invalid pattern", 192994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 0, ptrn.length()); 193994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 194994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 195994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 196994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#clone() 197994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 198994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_clone() { 199994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Test for method java.lang.Object java.text.ChoiceFormat.clone() 200994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat f = (ChoiceFormat) f1.clone(); 201994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not equal", f.equals(f1)); 202994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes f.setChoices(new double[] { 0, 1, 2 }, new String[] { "0", "1", "2" }); 203994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Equal", !f.equals(f1)); 204994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 205994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 206994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 207994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#equals(java.lang.Object) 208994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 209994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_equalsLjava_lang_Object() { 210994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Test for method boolean 211994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // java.text.ChoiceFormat.equals(java.lang.Object) 212994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 213994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String patternString = "-2#Inverted Orange| 0#No Orange| 0<Almost No Orange| 1#Normal Orange| 2#Expensive Orange"; 214994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes double[] appleLimits = { 1, 2, 3, 4, 5 }; 215994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String[] appleFormats = { "Tiny Apple", "Small Apple", "Medium Apple", 216994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "Large Apple", "Huge Apple" }; 217994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes double[] orangeLimits = { -2, 0, ChoiceFormat.nextDouble(0), 1, 2 }; 218994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String[] orangeFormats = { "Inverted Orange", "No Orange", 219994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "Almost No Orange", "Normal Orange", "Expensive Orange" }; 220994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 221994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat appleChoiceFormat = new ChoiceFormat(appleLimits, 222994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes appleFormats); 223994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat orangeChoiceFormat = new ChoiceFormat(orangeLimits, 224994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes orangeFormats); 225994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat orangeChoiceFormat2 = new ChoiceFormat(patternString); 226994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat hybridChoiceFormat = new ChoiceFormat(appleLimits, 227994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes orangeFormats); 228994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 229994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Apples should not equal oranges", !appleChoiceFormat 230994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes .equals(orangeChoiceFormat)); 231994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Different limit list--should not appear as equal", 232994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes !orangeChoiceFormat.equals(hybridChoiceFormat)); 233994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Different format list--should not appear as equal", 234994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes !appleChoiceFormat.equals(hybridChoiceFormat)); 235994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Should be equal--identical format", appleChoiceFormat 236994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes .equals(appleChoiceFormat)); 237994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Should be equals--same limits, same formats", 238994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes orangeChoiceFormat.equals(orangeChoiceFormat2)); 239994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 240994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat f2 = new ChoiceFormat( 241994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "0#Less than one|1#one|1<Between one and two|2<Greater than two"); 242994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not equal", f1.equals(f2)); 243994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 244994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 245994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 246994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#format(double, java.lang.StringBuffer, 247994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * java.text.FieldPosition) 248994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 249994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_formatDLjava_lang_StringBufferLjava_text_FieldPosition() { 250994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Test for method java.lang.StringBuffer 251994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // java.text.ChoiceFormat.format(double, java.lang.StringBuffer, 252994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // java.text.FieldPosition) 253994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes FieldPosition field = new FieldPosition(0); 254994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes StringBuffer buf = new StringBuffer(); 255994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String r = f1.format(-1, buf, field).toString(); 256994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Wrong choice for -1", "Less than one", r); 257994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes buf.setLength(0); 258994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes r = f1.format(0, buf, field).toString(); 259994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Wrong choice for 0", "Less than one", r); 260994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes buf.setLength(0); 261994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes r = f1.format(1, buf, field).toString(); 262994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Wrong choice for 1", "one", r); 263994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes buf.setLength(0); 264994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes r = f1.format(2, buf, field).toString(); 265994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Wrong choice for 2", "Between one and two", r); 266994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes buf.setLength(0); 267994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes r = f1.format(3, buf, field).toString(); 268994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Wrong choice for 3", "Greater than two", r); 269994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 270994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Regression test for HARMONY-1081 271994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals(0, new ChoiceFormat("|").format(Double.NaN, new StringBuffer(), new FieldPosition(6)).length()); 272994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals(0, new ChoiceFormat("|").format(1, new StringBuffer(), new FieldPosition(6)).length()); 273994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Less than one", f1.format(Double.NaN, new StringBuffer(), field).toString()); 274994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 275994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 276994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 277994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#format(long, java.lang.StringBuffer, 278994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * java.text.FieldPosition) 279994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 280994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_formatJLjava_lang_StringBufferLjava_text_FieldPosition() { 281994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Test for method java.lang.StringBuffer 282994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // java.text.ChoiceFormat.format(long, java.lang.StringBuffer, 283994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // java.text.FieldPosition) 284994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes FieldPosition field = new FieldPosition(0); 285994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes StringBuffer buf = new StringBuffer(); 286994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String r = f1.format(0.5, buf, field).toString(); 287994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Wrong choice for 0.5", "Less than one", r); 288994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes buf.setLength(0); 289994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes r = f1.format(1.5, buf, field).toString(); 290994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Wrong choice for 1.5", "Between one and two", r); 291994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes buf.setLength(0); 292994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes r = f1.format(2.5, buf, field).toString(); 293994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Wrong choice for 2.5", "Greater than two", r); 294994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 295994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 296994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 297994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#hashCode() 298994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 299994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_hashCode() { 300994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Test for method int java.text.ChoiceFormat.hashCode() 301994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat f2 = new ChoiceFormat( 302994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "0#Less than one|1#one|1<Between one and two|2<Greater than two"); 303994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Different hash", f1.hashCode() == f2.hashCode()); 304994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 305994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 306994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 307994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#nextDouble(double) 308994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 309994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_nextDoubleD() { 310994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Test for method double java.text.ChoiceFormat.nextDouble(double) 311994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not greater 5", ChoiceFormat.nextDouble(5) > 5); 312994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not greater 0", ChoiceFormat.nextDouble(0) > 0); 313994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not greater -5", ChoiceFormat.nextDouble(-5) > -5); 314994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not NaN", Double.isNaN(ChoiceFormat.nextDouble(Double.NaN))); 315994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 316994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 317994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 318994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#nextDouble(double, boolean) 319994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 320994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_nextDoubleDZ() { 321994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Test for method double java.text.ChoiceFormat.nextDouble(double, 322994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // boolean) 323994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not greater 0", ChoiceFormat.nextDouble(0, true) > 0); 324994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not less 0", ChoiceFormat.nextDouble(0, false) < 0); 325994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 326994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 327994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 328994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#parse(java.lang.String, 329994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * java.text.ParsePosition) 330994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 331994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_parseLjava_lang_StringLjava_text_ParsePosition() { 332994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Test for method java.lang.Number 333994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // java.text.ChoiceFormat.parse(java.lang.String, 334994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // java.text.ParsePosition) 335994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat format = new ChoiceFormat("1#one|2#two|3#three"); 336994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Case insensitive", 0, format 337994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes .parse("One", new ParsePosition(0)).intValue()); 338994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 339994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ParsePosition pos = new ParsePosition(0); 340994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes Number result = f1.parse("Greater than two", pos); 341994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not a Double1", result instanceof Double); 342994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Wrong value ~>2", result.doubleValue() == ChoiceFormat 343994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes .nextDouble(2)); 344994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Wrong position ~16", 16, pos.getIndex()); 345994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes pos = new ParsePosition(0); 346994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Incorrect result", Double.isNaN(f1.parse("12one", pos) 347994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes .doubleValue())); 348994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Wrong position ~0", 0, pos.getIndex()); 349994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes pos = new ParsePosition(2); 350994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes result = f1.parse("12one and two", pos); 351994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not a Double2", result instanceof Double); 352994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Ignored parse position", 1.0D, result.doubleValue(), 0.0D); 353994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Wrong position ~5", 5, pos.getIndex()); 354994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 355994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 356994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 357994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#previousDouble(double) 358994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 359994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_previousDoubleD() { 360994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Test for method double java.text.ChoiceFormat.previousDouble(double) 361994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not less 5", ChoiceFormat.previousDouble(5) < 5); 362994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not less 0", ChoiceFormat.previousDouble(0) < 0); 363994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not less -5", ChoiceFormat.previousDouble(-5) < -5); 364994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue("Not NaN", Double.isNaN(ChoiceFormat 365994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes .previousDouble(Double.NaN))); 366994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 367994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 368994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 369994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#toPattern() 370994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 371994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_toPattern() { 372994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes // Regression for HARMONY-59 373994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat cf = new ChoiceFormat(""); 374994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("", cf.toPattern()); 375994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 376994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes cf = new ChoiceFormat("-1#NEGATIVE_ONE|0#ZERO|1#ONE|1<GREATER_THAN_ONE"); 377994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("-1.0#NEGATIVE_ONE|0.0#ZERO|1.0#ONE|1.0<GREATER_THAN_ONE", 378994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes cf.toPattern()); 379994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 380994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes MessageFormat mf = new MessageFormat("CHOICE {1,choice}"); 381994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String ptrn = mf.toPattern(); 382994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Unused message format returning incorrect pattern", "CHOICE {1,choice,}", ptrn 383994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ); 384994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 385994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String pattern = f1.toPattern(); 386994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertTrue( 387994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "Wrong pattern: " + pattern, 388994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes pattern 389994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes .equals("0.0#Less than one|1.0#one|1.0<Between one and two|2.0<Greater than two")); 390994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 391994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes cf = new ChoiceFormat( 392994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "-1#is negative| 0#is zero or fraction | 1#is one |1.0<is 1+|2#is two |2<is more than 2."); 393994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes String str = "org.apache.harmony.tests.java.lang.share.MyResources2"; 394994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes cf.applyPattern(str); 395994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ptrn = cf.toPattern(); 396994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("Return value should be empty string for invalid pattern", 397994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 0, ptrn.length()); 398994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 399994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 400994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 401994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#format(long) 402994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 403994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_formatL() { 404994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat fmt = new ChoiceFormat( 405994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "-1#NEGATIVE_ONE|0#ZERO|1#ONE|1<GREATER_THAN_ONE"); 406994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 407994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("NEGATIVE_ONE", fmt.format(Long.MIN_VALUE)); 408994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("NEGATIVE_ONE", fmt.format(-1)); 409994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("ZERO", fmt.format(0)); 410994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("ONE", fmt.format(1)); 411994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("GREATER_THAN_ONE", fmt.format(Long.MAX_VALUE)); 412994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 413994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes 414994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes /** 415994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes * @tests java.text.ChoiceFormat#format(double) 416994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes */ 417994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes public void test_formatD() { 418994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes ChoiceFormat fmt = new ChoiceFormat( 419994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes "-1#NEGATIVE_ONE|0#ZERO|1#ONE|1<GREATER_THAN_ONE"); 420994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("NEGATIVE_ONE", fmt.format(Double.NEGATIVE_INFINITY)); 421994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("NEGATIVE_ONE", fmt.format(-999999999D)); 422994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("NEGATIVE_ONE", fmt.format(-1.1)); 423994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("NEGATIVE_ONE", fmt.format(-1.0)); 424994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("NEGATIVE_ONE", fmt.format(-0.9)); 425994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("ZERO", fmt.format(0.0)); 426994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("ZERO", fmt.format(0.9)); 427994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("ONE", fmt.format(1.0)); 428994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("GREATER_THAN_ONE", fmt.format(1.1)); 429994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("GREATER_THAN_ONE", fmt.format(999999999D)); 430994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes assertEquals("GREATER_THAN_ONE", fmt.format(Double.POSITIVE_INFINITY)); 431994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes } 432c10ba1bf470b9ae0d9904e28105de5e679840cb9Narayan Kamath 433c10ba1bf470b9ae0d9904e28105de5e679840cb9Narayan Kamath // http://b/19149384 434c10ba1bf470b9ae0d9904e28105de5e679840cb9Narayan Kamath public void testToPatternWithInfinities() { 435c10ba1bf470b9ae0d9904e28105de5e679840cb9Narayan Kamath final ChoiceFormat fmt = new ChoiceFormat( 436c10ba1bf470b9ae0d9904e28105de5e679840cb9Narayan Kamath "-\u221E<are negative|0<are fractions|1#is one|1.0<is 1+|\u221E<are many."); 437c10ba1bf470b9ae0d9904e28105de5e679840cb9Narayan Kamath assertEquals("-\u221E<are negative|0.0<are fractions|1.0#is one|1.0<is 1+|\u221E<are many.", 438c10ba1bf470b9ae0d9904e28105de5e679840cb9Narayan Kamath fmt.toPattern()); 439c10ba1bf470b9ae0d9904e28105de5e679840cb9Narayan Kamath } 440de75c0aa34c7db47ddec1704e94fa05c54687705Narayan Kamath 441de75c0aa34c7db47ddec1704e94fa05c54687705Narayan Kamath // http://b/19011159 442de75c0aa34c7db47ddec1704e94fa05c54687705Narayan Kamath public void testEscapedPatternWithConsecutiveQuotes() { 443de75c0aa34c7db47ddec1704e94fa05c54687705Narayan Kamath ChoiceFormat format = new ChoiceFormat("0#1'2''3'''4''''."); 444de75c0aa34c7db47ddec1704e94fa05c54687705Narayan Kamath String formatted = format.format(0); 445de75c0aa34c7db47ddec1704e94fa05c54687705Narayan Kamath assertEquals("12'3'4''.", formatted); 446de75c0aa34c7db47ddec1704e94fa05c54687705Narayan Kamath 447de75c0aa34c7db47ddec1704e94fa05c54687705Narayan Kamath format = new ChoiceFormat("0#1'2''3'''''4''''."); 448de75c0aa34c7db47ddec1704e94fa05c54687705Narayan Kamath formatted = format.format(0); 449de75c0aa34c7db47ddec1704e94fa05c54687705Narayan Kamath assertEquals("12'3''4''.", formatted); 450de75c0aa34c7db47ddec1704e94fa05c54687705Narayan Kamath } 451994e4e5ded616a100ca42b16cffa36aa9f595f64Elliott Hughes} 452