1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.text.tests.java.text; 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.math.RoundingMode; 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.ChoiceFormat; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.DecimalFormat; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.FieldPosition; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.NumberFormat; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.ParseException; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.text.ParsePosition; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Currency; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Locale; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class NumberFormatTest extends junit.framework.TestCase { 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.NumberFormat#format(java.lang.Object, 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.lang.StringBuffer, java.text.FieldPosition) 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_formatLjava_lang_ObjectLjava_lang_StringBufferLjava_text_FieldPosition() { 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes FieldPosition pos; 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes StringBuffer out; 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DecimalFormat format = (DecimalFormat) NumberFormat 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getInstance(Locale.US); 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pos = new FieldPosition(0); 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out = format.format(new Long(Long.MAX_VALUE), new StringBuffer(), pos); 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong result L1: " + out, "9,223,372,036,854,775,807", 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out.toString()); 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pos = new FieldPosition(0); 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out = format.format(new Long(Long.MIN_VALUE), new StringBuffer(), pos); 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong result L2: " + out, "-9,223,372,036,854,775,808", 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out.toString()); 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pos = new FieldPosition(0); 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out = format.format(new java.math.BigInteger(String 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .valueOf(Long.MAX_VALUE)), new StringBuffer(), pos); 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong result BI1: " + out, "9,223,372,036,854,775,807", 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out.toString()); 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pos = new FieldPosition(0); 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out = format.format(new java.math.BigInteger(String 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .valueOf(Long.MIN_VALUE)), new StringBuffer(), pos); 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong result BI2: " + out, "-9,223,372,036,854,775,808", 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out.toString()); 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes java.math.BigInteger big; 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pos = new FieldPosition(0); 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes big = new java.math.BigInteger(String.valueOf(Long.MAX_VALUE)) 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .add(new java.math.BigInteger("1")); 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out = format.format(big, new StringBuffer(), pos); 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong result BI3: " + out, "9,223,372,036,854,775,808", 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out.toString()); 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pos = new FieldPosition(0); 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes big = new java.math.BigInteger(String.valueOf(Long.MIN_VALUE)) 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .add(new java.math.BigInteger("-1")); 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out = format.format(big, new StringBuffer(), pos); 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong result BI4: " + out, "-9,223,372,036,854,775,809", 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out.toString()); 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pos = new FieldPosition(0); 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out = format.format(new java.math.BigDecimal("51.348"), 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new StringBuffer(), pos); 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong result BD1: " + out, "51.348", out.toString()); 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pos = new FieldPosition(0); 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes out = format.format(new java.math.BigDecimal("51"), new StringBuffer(), 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes pos); 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong result BD2: " + out, "51", out.toString()); 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.format(this, new StringBuffer(), pos); 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw IllegalArgumentException"); 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.format(null, new StringBuffer(), pos); 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw IllegalArgumentException"); 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.format(new Long(0), null, pos); 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.format(new Long(0), new StringBuffer(), null); 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NullPointerException"); 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.NumberFormat#getIntegerInstance() 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getIntegerInstance() throws ParseException { 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.text.NumberFormat getIntegerInstance() 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale origLocale = Locale.getDefault(); 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(Locale.US); 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DecimalFormat format = (DecimalFormat) NumberFormat 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getIntegerInstance(); 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test1: NumberFormat.getIntegerInstance().toPattern() returned wrong pattern", 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "#,##0", format.toPattern()); 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test2: NumberFormat.getIntegerInstance().format(35.76) returned wrong value", 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "36", format.format(35.76)); 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test3: NumberFormat.getIntegerInstance().parse(\"35.76\") returned wrong number", 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Long(35), format.parse("35.76")); 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test4: NumberFormat.getIntegerInstance().parseObject(\"35.76\") returned wrong number", 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Long(35), format.parseObject("35.76")); 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale.setDefault(origLocale); 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.NumberFormat#getIntegerInstance(java.util.Locale) 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getIntegerInstanceLjava_util_Locale() 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes throws ParseException { 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.text.NumberFormat 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // getIntegerInstance(java.util.Locale) 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale usLocale = Locale.US; 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Locale arLocale = new Locale("ar", "AE"); 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DecimalFormat format = (DecimalFormat) NumberFormat 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .getIntegerInstance(usLocale); 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test1: NumberFormat.getIntegerInstance().toPattern() returned wrong pattern", 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "#,##0", format.toPattern()); 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test2: NumberFormat.getIntegerInstance().format(-35.76) returned wrong value", 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-36", format.format(-35.76)); 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test3: NumberFormat.getIntegerInstance().parse(\"-36\") returned wrong number", 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Long(-36), format.parse("-36")); 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test4: NumberFormat.getIntegerInstance().parseObject(\"-36\") returned wrong number", 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Long(-36), format.parseObject("-36")); 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test5: NumberFormat.getIntegerInstance().getMaximumFractionDigits() returned wrong value", 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0, format.getMaximumFractionDigits()); 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Test6: NumberFormat.getIntegerInstance().isParseIntegerOnly() returned wrong value", 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.isParseIntegerOnly()); 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // try with a locale that has a different integer pattern 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format = (DecimalFormat) NumberFormat.getIntegerInstance(arLocale); 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test7: NumberFormat.getIntegerInstance(new Locale(\"ar\", \"AE\")).toPattern() returned wrong pattern", 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "#,##0;#,##0-", format.toPattern()); 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test8: NumberFormat.getIntegerInstance(new Locale(\"ar\", \"AE\")).format(-35.76) returned wrong value", 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "\u0666-", format.format(-6)); 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test9: NumberFormat.getIntegerInstance(new Locale(\"ar\", \"AE\")).parse(\"-36-\") returned wrong number", 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Long(-36), format.parse("36-")); 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test10: NumberFormat.getIntegerInstance(new Locale(\"ar\", \"AE\")).parseObject(\"36-\") returned wrong number", 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Long(-36), format.parseObject("36-")); 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test11: NumberFormat.getIntegerInstance(new Locale(\"ar\", \"AE\")).getMaximumFractionDigits() returned wrong value", 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0, format.getMaximumFractionDigits()); 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue( 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Test12: NumberFormat.getIntegerInstance(new Locale(\"ar\", \"AE\")).isParseIntegerOnly() returned wrong value", 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.isParseIntegerOnly()); 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.NumberFormat#getCurrency() 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getCurrency() { 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.util.Currency getCurrency() 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // a subclass that supports currency formatting 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Currency currH = Currency.getInstance("HUF"); 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat format = NumberFormat.getInstance(new Locale("hu", "HU")); 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame("Returned incorrect currency", currH, format.getCurrency()); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // a subclass that doesn't support currency formatting 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ChoiceFormat cformat = new ChoiceFormat( 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0#Less than one|1#one|1<Between one and two|2<Greater than two"); 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ((NumberFormat) cformat).getCurrency(); 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected UnsupportedOperationException"); 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.NumberFormat#getMaximumIntegerDigits() 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_getMaximumIntegerDigits() { 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat format = NumberFormat.getInstance(); 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.setMaximumIntegerDigits(2); 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Wrong result", "23", format.format(123)); 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.NumberFormat#setCurrency(java.util.Currency) 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setCurrencyLjava_util_Currency() { 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method void setCurrency(java.util.Currency) 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // a subclass that supports currency formatting 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Currency currA = Currency.getInstance("ARS"); 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat format = NumberFormat.getInstance(new Locale("hu", "HU")); 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes format.setCurrency(currA); 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertSame("Returned incorrect currency", currA, format.getCurrency()); 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // a subclass that doesn't support currency formatting 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ChoiceFormat cformat = new ChoiceFormat( 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0#Less than one|1#one|1<Between one and two|2<Greater than two"); 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ((NumberFormat) cformat).setCurrency(currA); 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected UnsupportedOperationException"); 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.text.NumberFormat#parseObject(java.lang.String, java.text.ParsePosition) 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_parseObjectLjava_lang_StringLjava_text_ParsePosition() { 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // regression test for HARMONY-1003 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertNull(NumberFormat.getInstance().parseObject("0", new ParsePosition(-1))); 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression for HARMONY-1685 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes NumberFormat.getInstance().parseObject("test", null); 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NullPointerException expected"); 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //expected 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void setUp() { 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes protected void tearDown() { 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @test java.text.NumberFormat#setRoundingMode(java.math.RoundingMode) 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setRoundingMode_NullRoundingMode() { 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Create a subclass ChoiceFormat which doesn't support 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // RoundingMode 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ChoiceFormat choiceFormat = new ChoiceFormat( 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0#Less than one|1#one|1<Between one and two|2<Greater than two"); 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ((NumberFormat) choiceFormat).setRoundingMode(null); 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Follow the behavior of RI 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("UnsupportedOperationException expected"); 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @test java.text.NumberFormat#setRoundingMode(java.math.RoundingMode) 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_setRoundingMode_Normal() { 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Create a subclass ChoiceFormat which doesn't support 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // RoundingMode 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ChoiceFormat choiceFormat = new ChoiceFormat( 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0#Less than one|1#one|1<Between one and two|2<Greater than two"); 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ((NumberFormat) choiceFormat).setRoundingMode(RoundingMode.CEILING); 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("UnsupportedOperationException expected"); 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (UnsupportedOperationException e) { 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 302