1cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath/* Licensed to the Apache Software Foundation (ASF) under one or more 2cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * contributor license agreements. See the NOTICE file distributed with 3cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * this work for additional information regarding copyright ownership. 4cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * The ASF licenses this file to You under the Apache License, Version 2.0 5cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * (the "License"); you may not use this file except in compliance with 6cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * the License. You may obtain a copy of the License at 7cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 8cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * http://www.apache.org/licenses/LICENSE-2.0 9cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 10cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Unless required by applicable law or agreed to in writing, software 11cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, 12cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * See the License for the specific language governing permissions and 14cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * limitations under the License. 15cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 16ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.util; 17cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 18cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.BufferedOutputStream; 19cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.Closeable; 20cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.File; 21cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.FileNotFoundException; 22cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.FileOutputStream; 23cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.FilePermission; 24cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.Flushable; 25cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.IOException; 26cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.OutputStream; 27cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.PipedOutputStream; 28cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.PrintStream; 29cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.UnsupportedEncodingException; 30cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.math.BigDecimal; 31cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.math.BigInteger; 32cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.math.MathContext; 33cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.nio.charset.Charset; 34cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.security.Permission; 35cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Arrays; 36cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Calendar; 37cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Date; 38cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.GregorianCalendar; 39cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.DuplicateFormatFlagsException; 40cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.FormatFlagsConversionMismatchException; 41cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Formattable; 42cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.FormattableFlags; 43cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Formatter; 44cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.FormatterClosedException; 45cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.IllegalFormatCodePointException; 46cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.IllegalFormatConversionException; 47cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.IllegalFormatException; 48cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.IllegalFormatFlagsException; 49cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.IllegalFormatPrecisionException; 50cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.IllegalFormatWidthException; 51cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Locale; 52cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.MissingFormatArgumentException; 53cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.MissingFormatWidthException; 54cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.TimeZone; 55cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.UnknownFormatConversionException; 56cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.Formatter.BigDecimalLayoutForm; 57cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 58cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport junit.framework.TestCase; 59cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 60cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathpublic class FormatterTest extends TestCase { 61cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private boolean root; 62cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 63cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath class MockAppendable implements Appendable { 64cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public Appendable append(CharSequence arg0) throws IOException { 65cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return null; 66cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 67cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 68cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public Appendable append(char arg0) throws IOException { 69cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return null; 70cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 71cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 72cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public Appendable append(CharSequence arg0, int arg1, int arg2) 73cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 74cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return null; 75cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 76cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 77cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 78cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath class MockFormattable implements Formattable { 79cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void formatTo(Formatter formatter, int flags, int width, 80cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int precision) throws IllegalFormatException { 81cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if ((flags & FormattableFlags.UPPERCASE) != 0) { 82cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("CUSTOMIZED FORMAT FUNCTION" + " WIDTH: " 83cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + width + " PRECISION: " + precision); 84cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } else { 85cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("customized format function" + " width: " 86cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + width + " precision: " + precision); 87cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 88cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 89cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 90cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public String toString() { 91cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return "formattable object"; 92cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 93cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 94cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public int hashCode() { 95cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return 0xf; 96cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 97cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 98cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 99cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath class MockDestination implements Appendable, Flushable { 100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private StringBuilder data = new StringBuilder(); 102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private boolean enabled = false; 104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public Appendable append(char c) throws IOException { 106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (enabled) { 107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath data.append(c); 108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath enabled = true; // enable it after the first append 109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } else { 110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw new IOException(); 111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return this; 113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public Appendable append(CharSequence csq) throws IOException { 116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (enabled) { 117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath data.append(csq); 118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath enabled = true; // enable it after the first append 119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } else { 120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw new IOException(); 121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return this; 123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public Appendable append(CharSequence csq, int start, int end) 126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (enabled) { 128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath data.append(csq, start, end); 129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath enabled = true; // enable it after the first append 130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } else { 131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw new IOException(); 132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return this; 134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void flush() throws IOException { 137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw new IOException("Always throw IOException"); 138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public String toString() { 141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return data.toString(); 142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private File notExist; 146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private File fileWithContent; 148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private File readOnly; 150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private File secret; 152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private TimeZone defaultTimeZone; 154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#Formatter() 157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_Constructor() { 159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(); 160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(f); 161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(f.out() instanceof StringBuilder); 162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(f.locale(), Locale.getDefault()); 163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(f.toString()); 164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#Formatter(Appendable) 168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_lang_Appendable() { 170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath MockAppendable ma = new MockAppendable(); 171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f1 = new Formatter(ma); 172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(ma, f1.out()); 173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(f1.locale(), Locale.getDefault()); 174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(f1.toString()); 175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f2 = new Formatter((Appendable) null); 177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * If a(the input param) is null then a StringBuilder will be created 179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * and the output can be attained by invoking the out() method. But RI 180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * raises an error of FormatterClosedException when invoking out() or 181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * toString(). 182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Appendable sb = f2.out(); 184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(sb instanceof StringBuilder); 185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(f2.toString()); 186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#Formatter(Locale) 190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_util_Locale() { 192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f1 = new Formatter(Locale.FRANCE); 193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(f1.out() instanceof StringBuilder); 194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(f1.locale(), Locale.FRANCE); 195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(f1.toString()); 196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f2 = new Formatter((Locale) null); 198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull(f2.locale()); 199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(f2.out() instanceof StringBuilder); 200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(f2.toString()); 201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#Formatter(Appendable, Locale) 205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_lang_AppendableLjava_util_Locale() { 207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath MockAppendable ma = new MockAppendable(); 208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f1 = new Formatter(ma, Locale.CANADA); 209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(ma, f1.out()); 210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(f1.locale(), Locale.CANADA); 211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f2 = new Formatter(ma, null); 213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull(f2.locale()); 214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(ma, f1.out()); 215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f3 = new Formatter(null, Locale.GERMAN); 217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(f3.locale(), Locale.GERMAN); 218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(f3.out() instanceof StringBuilder); 219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#Formatter(String) 223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_lang_String() throws IOException { 225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter((String) null); 228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e1) { 230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist.getPath()); 234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(f.locale(), Locale.getDefault()); 235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(fileWithContent.getPath()); 238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(0, fileWithContent.length()); 239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!root) { 242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(readOnly.getPath()); 244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FileNotFoundException"); 245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FileNotFoundException e) { 246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#Formatter(String, String) 253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_lang_StringLjava_lang_String() 255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter((String) null, Charset.defaultCharset().name()); 259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e1) { 261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist.getPath(), null); 266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e2) { 268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist.getPath(), Charset.defaultCharset().name()); 272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(f.locale(), Locale.getDefault()); 273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist.getPath(), "ISO 1111-1"); 277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnsupportedEncodingException"); 278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnsupportedEncodingException e1) { 279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(fileWithContent.getPath(), "UTF-16BE"); 283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(0, fileWithContent.length()); 284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!root) { 287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(readOnly.getPath(), "UTF-16BE"); 289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FileNotFoundException"); 290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FileNotFoundException e) { 291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#Formatter(String, String, Locale) 298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_lang_StringLjava_lang_StringLjava_util_Locale() 300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter((String) null, Charset.defaultCharset().name(), 304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Locale.KOREA); 305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e1) { 307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist.getPath(), null, Locale.KOREA); 312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e2) { 314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist.getPath(), Charset.defaultCharset().name(), 318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath null); 319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(f); 320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist.getPath(), Charset.defaultCharset().name(), 323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Locale.KOREA); 324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(f.locale(), Locale.KOREA); 325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist.getPath(), "ISO 1111-1", Locale.CHINA); 329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnsupportedEncodingException"); 330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnsupportedEncodingException e1) { 331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(fileWithContent.getPath(), "UTF-16BE", 335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Locale.CANADA_FRENCH); 336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(0, fileWithContent.length()); 337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!root) { 340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(readOnly.getPath(), Charset.defaultCharset() 342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .name(), Locale.ITALY); 343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FileNotFoundException"); 344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FileNotFoundException e) { 345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#Formatter(File) 352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_io_File() throws IOException { 354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter((File) null); 357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e1) { 359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist); 363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(f.locale(), Locale.getDefault()); 364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(fileWithContent); 367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(0, fileWithContent.length()); 368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!root) { 371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(readOnly); 373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FileNotFoundException"); 374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FileNotFoundException e) { 375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#Formatter(File, String) 382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_io_FileLjava_lang_String() 384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter((File) null, Charset.defaultCharset().name()); 388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e1) { 390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist, Charset.defaultCharset().name()); 394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(f.locale(), Locale.getDefault()); 395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(fileWithContent, "UTF-16BE"); 398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(0, fileWithContent.length()); 399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!root) { 402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(readOnly, Charset.defaultCharset().name()); 404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FileNotFoundException"); 405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FileNotFoundException e) { 406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist, null); 412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e2) { 414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } finally { 416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (notExist.exists()) { 417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Fail on RI on Windows, because output stream is created and 418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // not closed when exception thrown 419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(notExist.delete()); 420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist, "ISO 1111-1"); 425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnsupportedEncodingException"); 426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnsupportedEncodingException e1) { 427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } finally { 429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (notExist.exists()) { 430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Fail on RI on Windows, because output stream is created and 431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // not closed when exception thrown 432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(notExist.delete()); 433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#Formatter(File, String, Locale) 439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_io_FileLjava_lang_StringLjava_util_Locale() 441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter((File) null, Charset.defaultCharset().name(), 445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Locale.KOREA); 446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e1) { 448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 449cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 450cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 451cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 452cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist, null, Locale.KOREA); 453cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 454cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e2) { 455cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 456cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 457cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 458cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist, Charset.defaultCharset().name(), null); 459cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(f); 460cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 461cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 462cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist, Charset.defaultCharset().name(), 463cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Locale.KOREA); 464cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(f.locale(), Locale.KOREA); 465cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 466cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 467cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 468cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist, "ISO 1111-1", Locale.CHINA); 469cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnsupportedEncodingException"); 470cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnsupportedEncodingException e1) { 471cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 472cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 473cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(fileWithContent.getPath(), "UTF-16BE", 474cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Locale.CANADA_FRENCH); 475cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(0, fileWithContent.length()); 476cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 477cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 478cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!root) { 479cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 480cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(readOnly.getPath(), Charset.defaultCharset() 481cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .name(), Locale.ITALY); 482cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FileNotFoundException"); 483cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FileNotFoundException e) { 484cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 485cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 486cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 487cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 488cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 489cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 490cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#Formatter(PrintStream) 491cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 492cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_io_PrintStream() throws IOException { 493cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 494cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 495cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter((PrintStream) null); 496cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 497cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e1) { 498cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 499cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 500cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 501cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath PrintStream ps = new PrintStream(notExist, "UTF-16BE"); 502cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(ps); 503cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(Locale.getDefault(), f.locale()); 504cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 505cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 506cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 507cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 508cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#Formatter(OutputStream) 509cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 510cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_io_OutputStream() throws IOException { 511cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 512cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 513cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter((OutputStream) null); 514cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 515cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e1) { 516cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 517cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 518cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 519cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath OutputStream os = new FileOutputStream(notExist); 520cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(os); 521cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(Locale.getDefault(), f.locale()); 522cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 523cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 524cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 525cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 526cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#Formatter(OutputStream, String) 527cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 528cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_io_OutputStreamLjava_lang_String() 529cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 530cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 531cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 532cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter((OutputStream) null, Charset.defaultCharset() 533cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .name()); 534cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 535cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e1) { 536cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 537cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 538cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 539cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath OutputStream os = null; 540cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 541cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath os = new FileOutputStream(notExist); 542cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(os, null); 543cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 544cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e2) { 545cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 546cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } finally { 547cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath os.close(); 548cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 549cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 550cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 551cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath os = new PipedOutputStream(); 552cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(os, "TMP-1111"); 553cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnsupportedEncodingException"); 554cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnsupportedEncodingException e1) { 555cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 556cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } finally { 557cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath os.close(); 558cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 559cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 560cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath os = new FileOutputStream(fileWithContent); 561cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(os, "UTF-16BE"); 562cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(Locale.getDefault(), f.locale()); 563cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 564cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 565cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 566cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 567cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Test method for 'java.util.Formatter.Formatter(OutputStream, String, 568cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Locale) 569cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 570cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_io_OutputStreamLjava_lang_StringLjava_util_Locale() 571cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 572cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 573cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 574cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter((OutputStream) null, Charset.defaultCharset() 575cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .name(), Locale.getDefault()); 576cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 577cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e1) { 578cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 579cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 580cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 581cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath OutputStream os = null; 582cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 583cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath os = new FileOutputStream(notExist); 584cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(os, null, Locale.getDefault()); 585cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 586cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e2) { 587cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 588cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } finally { 589cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath os.close(); 590cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 591cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 592cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath os = new FileOutputStream(notExist); 593cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(os, Charset.defaultCharset().name(), null); 594cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 595cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 596cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 597cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath os = new PipedOutputStream(); 598cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(os, "TMP-1111", Locale.getDefault()); 599cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnsupportedEncodingException"); 600cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnsupportedEncodingException e1) { 601cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 602cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 603cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 604cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath os = new FileOutputStream(fileWithContent); 605cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(os, "UTF-16BE", Locale.ENGLISH); 606cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(Locale.ENGLISH, f.locale()); 607cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 608cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 609cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 610cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 611cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#locale() 612cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 613cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_locale() { 614cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 615cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter((Locale) null); 616cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull(f.locale()); 617cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 618cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 619cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 620cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.locale(); 621cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FormatterClosedException"); 622cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatterClosedException e) { 623cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 624cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 625cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 626cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 627cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 628cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#out() 629cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 630cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_out() { 631cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 632cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 633cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(f.out()); 634cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(f.out() instanceof StringBuilder); 635cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 636cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 637cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.out(); 638cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FormatterClosedException"); 639cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatterClosedException e) { 640cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 641cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 642cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 643cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 644cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 645cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 646cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#flush() 647cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 648cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_flush() throws IOException { 649cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 650cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(notExist); 651cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(f instanceof Flushable); 652cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 653cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 654cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.flush(); 655cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FormatterClosedException"); 656cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatterClosedException e) { 657cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 658cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 659cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 660cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 661cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // For destination that does not implement Flushable 662cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // No exception should be thrown 663cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.flush(); 664cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 665cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 666cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 667cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#close() 668cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 669cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_close() throws IOException { 670cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(notExist); 671cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(f instanceof Closeable); 672cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 673cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // close next time will not throw exception 674cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 675cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull(f.ioException()); 676cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 677cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 678cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 679cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#toString() 680cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 681cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toString() { 682cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(); 683cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(f.toString()); 684cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(f.out().toString(), f.toString()); 685cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 686cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 687cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.toString(); 688cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FormatterClosedException"); 689cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatterClosedException e) { 690cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 691cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 692cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 693cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 694cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 695cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#ioException() 696cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 697cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ioException() throws IOException { 698cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 699cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(new MockDestination()); 700cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull(f.ioException()); 701cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.flush(); 702cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(f.ioException()); 703cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.close(); 704cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 705cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath MockDestination md = new MockDestination(); 706cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(md); 707cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%s%s", "1", "2"); 708cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // format stop working after IOException 709cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull(f.ioException()); 710cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("", f.toString()); 711cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 712cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 713cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 714cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for null parameter 715cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 716cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_null() { 717cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(); 718cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 719cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) null, "parameter"); 720cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 721cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 722cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 723cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 724cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 725cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 726cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("hello", (Object[]) null); 727cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("hello", f.toString()); 728cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 729cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 730cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 731cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for argument index 732cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 733cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_ArgIndex() { 734cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter formatter = new Formatter(Locale.US); 735cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("%1$s%2$s%3$s%4$s%5$s%6$s%7$s%8$s%9$s%11$s%10$s", "1", 736cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"); 737cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1234567891110", formatter.toString()); 738cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 739cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter = new Formatter(Locale.JAPAN); 740cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("%0$s", "hello"); 741cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("hello", formatter.toString()); 742cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 743cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 744cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter = new Formatter(Locale.US); 745cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("%-1$s", "1", "2"); 746cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnknownFormatConversionException"); 747cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnknownFormatConversionException e) { 748cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 749cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 750cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 751cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 752cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter = new Formatter(Locale.US); 753cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("%$s", "hello", "2"); 754cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnknownFormatConversionException"); 755cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnknownFormatConversionException e) { 756cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 757cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 758cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 759cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 760cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(Locale.US); 761cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%", "string"); 762cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnknownFormatConversionException"); 763cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnknownFormatConversionException e) { 764cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 765cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 766cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 767cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter = new Formatter(Locale.FRANCE); 768cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("%1$s%2$s%3$s%4$s%5$s%6$s%7$s%8$s%<s%s%s%<s", "1", 769cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"); 770cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("123456788122", formatter.toString()); 771cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 772cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter = new Formatter(Locale.FRANCE); 773cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format( 774cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "xx%1$s22%2$s%s%<s%5$s%<s&%7$h%2$s%8$s%<s%s%s%<ssuffix", "1", 775cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "2", "3", "4", "5", "6", 7, "8", "9", "10", "11"); 776cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("xx12221155&7288233suffix", formatter.toString()); 777cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 778cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 779cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("%<s", "hello"); 780cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw MissingFormatArgumentException"); 781cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatArgumentException e) { 782cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 783cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 784cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 785cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter = new Formatter(Locale.US); 786cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 787cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("%123$s", "hello"); 788cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw MissingFormatArgumentException"); 789cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatArgumentException e) { 790cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 791cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 792cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 793cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter = new Formatter(Locale.US); 794cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 795cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // 2147483648 is the value of Integer.MAX_VALUE + 1 796cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("%2147483648$s", "hello"); 797cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw MissingFormatArgumentException"); 798cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatArgumentException e) { 799cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 800cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 801cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 802cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 803cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // 2147483647 is the value of Integer.MAX_VALUE 804cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("%2147483647$s", "hello"); 805cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw MissingFormatArgumentException"); 806cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatArgumentException e) { 807cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 808cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 809cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 810cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter = new Formatter(Locale.US); 811cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 812cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("%s%s", "hello"); 813cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw MissingFormatArgumentException"); 814cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatArgumentException e) { 815cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 816cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 817cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 818cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter = new Formatter(Locale.US); 819cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("$100", 100); 820cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("$100", formatter.toString()); 821cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 822cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter = new Formatter(Locale.UK); 823cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath formatter.format("%01$s", "string"); 824cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("string", formatter.toString()); 825cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 826cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 827cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 828cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for width 829cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 830cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_Width() { 831cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(Locale.US); 832cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%1$8s", "1"); 833cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" 1", f.toString()); 834cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 835cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 836cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%1$-1%", "string"); 837cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("%", f.toString()); 838cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 839cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.ITALY); 840cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // 2147483648 is the value of Integer.MAX_VALUE + 1 841cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%2147483648s", "string"); 842cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("string", f.toString()); 843cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 844cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // the value of Integer.MAX_VALUE will allocate about 4G bytes of 845cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // memory. 846cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // It may cause OutOfMemoryError, so this value is not tested 847cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 848cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 849cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 850cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for precision 851cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 852cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_Precision() { 853cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(Locale.US); 854cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%.5s", "123456"); 855cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("12345", f.toString()); 856cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 857cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 858cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // 2147483648 is the value of Integer.MAX_VALUE + 1 859cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%.2147483648s", "..."); 860cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("...", f.toString()); 861cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 862cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // the value of Integer.MAX_VALUE will allocate about 4G bytes of 863cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // memory. 864cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // It may cause OutOfMemoryError, so this value is not tested 865cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 866cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 867cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%10.0b", Boolean.TRUE); 868cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" ", f.toString()); 869cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 870cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 871cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%10.01s", "hello"); 872cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" h", f.toString()); 873cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 874cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 875cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 876cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%.s", "hello", "2"); 877cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnknownFormatConversionException"); 878cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnknownFormatConversionException e) { 879cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 880cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 881cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 882cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 883cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 884cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%.-5s", "123456"); 885cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnknownFormatConversionException"); 886cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnknownFormatConversionException e) { 887cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 888cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 889cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 890cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 891cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 892cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%1.s", "hello", "2"); 893cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnknownFormatConversionException"); 894cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnknownFormatConversionException e) { 895cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 896cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 897cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 898cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 899cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%5.1s", "hello"); 900cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" h", f.toString()); 901cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 902cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.FRANCE); 903cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%.0s", "hello", "2"); 904cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("", f.toString()); 905cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 906cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 907cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 908cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for line sperator 909cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 910cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_LineSeparator() { 911cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 912cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 913cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String oldSeparator = System.getProperty("line.separator"); 914cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 915cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.setProperty("line.separator", "!\n"); 916cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 917cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 918cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%1$n", 1); 919cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("!\n", f.toString()); 920cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 921cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.KOREAN); 922cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("head%1$n%2$n", 1, new Date()); 923cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("head!\n!\n", f.toString()); 924cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 925cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 926cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%n%s", "hello"); 927cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("!\nhello", f.toString()); 928cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } finally { 929cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.setProperty("line.separator", oldSeparator); 930cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 931cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 932cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 933cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 934cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%-n"); 935cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatFlagsException: %-n"); 936cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException e) { 937cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 938cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 939cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 940cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%+n"); 941cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatFlagsException: %+n"); 942cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException e) { 943cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 944cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 945cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 946cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%#n"); 947cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatFlagsException: %#n"); 948cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException e) { 949cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 950cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 951cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 952cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("% n"); 953cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatFlagsException: % n"); 954cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException e) { 955cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 956cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 957cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 958cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%0n"); 959cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatFlagsException: %0n"); 960cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException e) { 961cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 962cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 963cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 964cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%,n"); 965cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatFlagsException: %,n"); 966cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException e) { 967cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 968cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 969cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 970cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%(n"); 971cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatFlagsException: %(n"); 972cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException e) { 973cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 974cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 975cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 976cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 977cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 978cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%4n"); 979cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatWidthException"); 980cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatWidthException e) { 981cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 982cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 983cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 984cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 985cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 986cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%-4n"); 987cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatWidthException"); 988cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatWidthException e) { 989cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 990cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 991cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 992cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 993cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 994cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%.9n"); 995cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatPrecisionException"); 996cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatPrecisionException e) { 997cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 998cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 999cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1000cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 1001cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1002cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%5.9n"); 1003cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatPrecisionException"); 1004cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatPrecisionException e) { 1005cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1006cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1007cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1008cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.setProperty("line.separator", oldSeparator); 1009cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1010cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1011cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1012cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for percent 1013cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1014cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_Percent() { 1015cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 1016cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1017cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.ENGLISH); 1018cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%1$%", 100); 1019cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("%", f.toString()); 1020cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1021cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.CHINA); 1022cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%1$%%%", "hello", new Object()); 1023cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("%%", f.toString()); 1024cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1025cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.CHINA); 1026cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%%%s", "hello"); 1027cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("%hello", f.toString()); 1028cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1029cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 1030cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1031cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%.9%"); 1032cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatPrecisionException"); 1033cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatPrecisionException e) { 1034cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1035cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1036cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1037cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 1038cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1039cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%5.9%"); 1040cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatPrecisionException"); 1041cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatPrecisionException e) { 1042cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1043cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1044cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1045cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 1046cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFormatFlagsConversionMismatchException(f, "%+%"); 1047cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFormatFlagsConversionMismatchException(f, "%#%"); 1048cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFormatFlagsConversionMismatchException(f, "% %"); 1049cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFormatFlagsConversionMismatchException(f, "%0%"); 1050cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFormatFlagsConversionMismatchException(f, "%,%"); 1051cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFormatFlagsConversionMismatchException(f, "%(%"); 1052cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1053cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1054cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.KOREAN); 1055cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%4%", 1); 1056cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 1057cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * fail on RI the output string should be right justified by appending 1058cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * spaces till the whole string is 4 chars width. 1059cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1060cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" %", f.toString()); 1061cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1062cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 1063cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%-4%", 100); 1064cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 1065cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * fail on RI, throw UnknownFormatConversionException the output string 1066cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * should be left justified by appending spaces till the whole string is 1067cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 4 chars width. 1068cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1069cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("% ", f.toString()); 1070cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1071cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1072cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void assertFormatFlagsConversionMismatchException(Formatter f, String str) { 1073cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1074cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(str); 1075cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FormatFlagsConversionMismatchException: " 1076cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + str); 1077cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 1078cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * error on RI, throw IllegalFormatFlagsException specification 1079cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * says FormatFlagsConversionMismatchException should be thrown 1080cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1081cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatFlagsConversionMismatchException e) { 1082cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1083cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1084cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1085cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1086cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1087cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for flag 1088cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1089cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_Flag() { 1090cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(Locale.US); 1091cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1092cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%1$-#-8s", "something"); 1093cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw DuplicateFormatFlagsException"); 1094cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (DuplicateFormatFlagsException e) { 1095cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1096cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1097cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1098cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final char[] chars = { '-', '#', '+', ' ', '0', ',', '(', '%', '<' }; 1099cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Arrays.sort(chars); 1100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 1101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (char i = 0; i <= 256; i++) { 1102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test 8 bit character 1103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (Arrays.binarySearch(chars, i) >= 0 || Character.isDigit(i) 1104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath || Character.isLetter(i)) { 1105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Do not test 0-9, a-z, A-Z and characters in the chars array. 1106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // They are characters used as flags, width or conversions 1107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath continue; 1108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%" + i + "s", 1); 1111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnknownFormatConversionException"); 1112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnknownFormatConversionException e) { 1113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for general 1120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion b/B 1121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_format_LString$LObject_GeneralConversionB() { 1123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] triple = { 1124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Boolean.FALSE, "%3.2b", " fa", }, 1125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Boolean.FALSE, "%-4.6b", "false", }, 1126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Boolean.FALSE, "%.2b", "fa", }, 1127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Boolean.TRUE, "%3.2b", " tr", }, 1128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Boolean.TRUE, "%-4.6b", "true", }, 1129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Boolean.TRUE, "%.2b", "tr", }, 1130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Character('c'), "%3.2b", " tr", }, 1131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Character('c'), "%-4.6b", "true", }, 1132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Character('c'), "%.2b", "tr", }, 1133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Byte((byte) 0x01), "%3.2b", " tr", }, 1134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Byte((byte) 0x01), "%-4.6b", "true", }, 1135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Byte((byte) 0x01), "%.2b", "tr", }, 1136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Short((short) 0x0001), "%3.2b", " tr", }, 1137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Short((short) 0x0001), "%-4.6b", "true", }, 1138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Short((short) 0x0001), "%.2b", "tr", }, 1139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Integer(1), "%3.2b", " tr", }, 1140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Integer(1), "%-4.6b", "true", }, 1141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Integer(1), "%.2b", "tr", }, 1142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Float(1.1f), "%3.2b", " tr", }, 1143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Float(1.1f), "%-4.6b", "true", }, 1144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Float(1.1f), "%.2b", "tr", }, 1145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Double(1.1d), "%3.2b", " tr", }, 1146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Double(1.1d), "%-4.6b", "true", }, 1147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Double(1.1d), "%.2b", "tr", }, 1148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { "", "%3.2b", " tr", }, 1149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { "", "%-4.6b", "true", }, 1150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { "", "%.2b", "tr", }, 1151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { "string content", "%3.2b", " tr", }, 1152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { "string content", "%-4.6b", "true", }, 1153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { "string content", "%.2b", "tr", }, 1154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new MockFormattable(), "%3.2b", " tr", }, 1155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new MockFormattable(), "%-4.6b", "true", }, 1156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new MockFormattable(), "%.2b", "tr", }, 1157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (Object) null, "%3.2b", " fa", }, 1158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (Object) null, "%-4.6b", "false", }, 1159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (Object) null, "%.2b", "fa", }, 1160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 1161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 1164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 1165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 1166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 1167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < triple.length; i++) { 1168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.FRANCE); 1169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) triple[i][pattern], triple[i][input]); 1170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + triple[i][input] 1171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + ",pattern[" + i + "]:" + triple[i][pattern], triple[i][output], f.toString()); 1172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 1174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(((String) triple[i][pattern]).toUpperCase(Locale.US), triple[i][input]); 1175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + triple[i][input] 1176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + ",pattern[" + i + "]:" + triple[i][pattern], ((String) triple[i][output]) 1177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.US), f.toString()); 1178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for general 1183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion type 's' and 'S' 1184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_format_LString$LObject_GeneralConversionS() { 1186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] triple = { 1188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Boolean.FALSE, "%2.3s", "fal", }, 1189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Boolean.FALSE, "%-6.4s", "fals ", }, 1190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Boolean.FALSE, "%.5s", "false", }, 1191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Boolean.TRUE, "%2.3s", "tru", }, 1192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Boolean.TRUE, "%-6.4s", "true ", }, 1193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Boolean.TRUE, "%.5s", "true", }, 1194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Character('c'), "%2.3s", " c", }, 1195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Character('c'), "%-6.4s", "c ", }, 1196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Character('c'), "%.5s", "c", }, 1197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Byte((byte) 0x01), "%2.3s", " 1", }, 1198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Byte((byte) 0x01), "%-6.4s", "1 ", }, 1199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Byte((byte) 0x01), "%.5s", "1", }, 1200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Short((short) 0x0001), "%2.3s", " 1", }, 1201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Short((short) 0x0001), "%-6.4s", "1 ", }, 1202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Short((short) 0x0001), "%.5s", "1", }, 1203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Integer(1), "%2.3s", " 1", }, 1204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Integer(1), "%-6.4s", "1 ", }, 1205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Integer(1), "%.5s", "1", }, 1206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Float(1.1f), "%2.3s", "1.1", }, 1207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Float(1.1f), "%-6.4s", "1.1 ", }, 1208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Float(1.1f), "%.5s", "1.1", }, 1209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Double(1.1d), "%2.3s", "1.1", }, 1210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Double(1.1d), "%-6.4s", "1.1 ", }, 1211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Double(1.1d), "%.5s", "1.1", }, 1212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { "", "%2.3s", " ", }, 1213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { "", "%-6.4s", " ", }, 1214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { "", "%.5s", "", }, 1215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { "string content", "%2.3s", "str", }, 1216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { "string content", "%-6.4s", "stri ", }, 1217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { "string content", "%.5s", "strin", }, 1218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new MockFormattable(), "%2.3s", "customized format function width: 2 precision: 3", }, 1219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new MockFormattable(), "%-6.4s", "customized format function width: 6 precision: 4", }, 1220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new MockFormattable(), "%.5s", "customized format function width: -1 precision: 5", }, 1221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (Object) null, "%2.3s", "nul", }, 1222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (Object) null, "%-6.4s", "null ", }, 1223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (Object) null, "%.5s", "null", }, 1224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 1225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 1228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 1229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 1230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 1231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < triple.length; i++) { 1232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.FRANCE); 1233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) triple[i][pattern], triple[i][input]); 1234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + triple[i][input] 1235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + ",pattern[" + i + "]:" + triple[i][pattern], triple[i][output], f.toString()); 1236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 1238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(((String) triple[i][pattern]).toUpperCase(Locale.US), triple[i][input]); 1239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + triple[i][input] 1240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + ",pattern[" + i + "]:" + triple[i][pattern], ((String) triple[i][output]) 1241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.US), f.toString()); 1242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for general 1247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion type 'h' and 'H' 1248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_format_LString$LObject_GeneralConversionH() { 1250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[] input = { 1252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Boolean.FALSE, 1253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Boolean.TRUE, 1254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Character('c'), 1255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Byte((byte) 0x01), 1256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Short((short) 0x0001), 1257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Integer(1), 1258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Float(1.1f), 1259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Double(1.1d), 1260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "", 1261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "string content", 1262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new MockFormattable(), 1263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath (Object) null, 1264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 1265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 1267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < input.length - 1; i++) { 1268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.FRANCE); 1269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%h", input[i]); 1270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + input[i], 1271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Integer.toHexString(input[i].hashCode()), f.toString()); 1272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 1274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%H", input[i]); 1275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + input[i], 1276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Integer.toHexString(input[i].hashCode()).toUpperCase(Locale.US), f.toString()); 1277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for general 1282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion other cases 1283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_GeneralConversionOther() { 1285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 1286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * In Turkish locale, the upper case of '\u0069' is '\u0130'. The 1287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * following test indicate that '\u0069' is coverted to upper case 1288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * without using the turkish locale. 1289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(new Locale("tr")); 1291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%S", "\u0069"); 1292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("\u0049", f.toString()); 1293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[] input = { 1295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Boolean.FALSE, 1296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Boolean.TRUE, 1297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Character('c'), 1298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Byte((byte) 0x01), 1299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Short((short) 0x0001), 1300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Integer(1), 1301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Float(1.1f), 1302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Double(1.1d), 1303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "", 1304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "string content", 1305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new MockFormattable(), 1306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath (Object) null, 1307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 1308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 1309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < input.length; i++) { 1310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!(input[i] instanceof Formattable)) { 1311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%#s", input[i]); 1313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 1314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * fail on RI, spec says if the '#' flag is present and the 1315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * argument is not a Formattable , then a 1316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * FormatFlagsConversionMismatchException will be thrown. 1317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FormatFlagsConversionMismatchException"); 1319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatFlagsConversionMismatchException e) { 1320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } else { 1323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%#s%<-#8s", input[i]); 1324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals( 1325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "customized format function width: -1 precision: -1customized format function width: 8 precision: -1", 1326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.toString()); 1327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for general 1333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion exception 1334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_GeneralConversionException() { 1336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final String[] flagMismatch = { "%#b", "%+b", "% b", "%0b", "%,b", 1337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "%(b", "%#B", "%+B", "% B", "%0B", "%,B", "%(B", "%#h", "%+h", 1338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "% h", "%0h", "%,h", "%(h", "%#H", "%+H", "% H", "%0H", "%,H", 1339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "%(H", "%+s", "% s", "%0s", "%,s", "%(s", "%+S", "% S", "%0S", 1340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "%,S", "%(S" }; 1341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(Locale.US); 1343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < flagMismatch.length; i++) { 1345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(flagMismatch[i], "something"); 1347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FormatFlagsConversionMismatchException"); 1348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatFlagsConversionMismatchException e) { 1349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final String[] missingWidth = { "%-b", "%-B", "%-h", "%-H", "%-s", 1354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "%-S", }; 1355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < missingWidth.length; i++) { 1356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(missingWidth[i], "something"); 1358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw MissingFormatWidthException"); 1359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatWidthException e) { 1360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression test 1365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 1366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%c", (byte) -0x0001); 1368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Should throw IllegalFormatCodePointException"); 1369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatCodePointException e) { 1370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 1374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%c", (short) -0x0001); 1376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Should throw IllegalFormatCodePointException"); 1377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatCodePointException e) { 1378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 1382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%c", -0x0001); 1384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Should throw IllegalFormatCodePointException"); 1385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatCodePointException e) { 1386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for Character 1392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion 1393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_CharacterConversion() { 1395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(Locale.US); 1396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[] illArgs = { Boolean.TRUE, new Float(1.1f), 1397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Double(1.1d), "string content", new Float(1.1f), new Date() }; 1398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < illArgs.length; i++) { 1399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%c", illArgs[i]); 1401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatConversionException"); 1402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatConversionException e) { 1403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%c", Integer.MAX_VALUE); 1409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatCodePointException"); 1410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatCodePointException e) { 1411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%#c", 'c'); 1416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FormatFlagsConversionMismatchException"); 1417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatFlagsConversionMismatchException e) { 1418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] triple = { 1422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 'c', "%c", "c" }, 1423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 'c', "%-2c", "c " }, 1424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { '\u0123', "%c", "\u0123" }, 1425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { '\u0123', "%-2c", "\u0123 " }, 1426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0x11, "%c", "\u0011" }, 1427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0x11, "%-2c", "\u0011 " }, 1428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0x1111, "%c", "\u1111" }, 1429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0x1111, "%-2c", "\u1111 " }, 1430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x11, "%c", "\u0011" }, 1431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x11, "%-2c", "\u0011 " }, 1432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 1433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 1435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 1436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 1437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < triple.length; i++) { 1438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 1439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) triple[i][pattern], triple[i][input]); 1440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(triple[i][output], f.toString()); 1441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 1444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%c", 0x10000); 1445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(0x10000, f.toString().codePointAt(0)); 1446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%2.2c", 'c'); 1449cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatPrecisionException"); 1450cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatPrecisionException e) { 1451cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 1452cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1453cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1454cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 1455cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%C", 'w'); 1456cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // error on RI, throw UnknownFormatConversionException 1457cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // RI do not support converter 'C' 1458cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("W", f.toString()); 1459cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1460cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.JAPAN); 1461cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%Ced", 0x1111); 1462cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // error on RI, throw UnknownFormatConversionException 1463cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // RI do not support converter 'C' 1464cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("\u1111ed", f.toString()); 1465cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1466cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1467cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1468cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1469cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for legal 1470cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Byte/Short/Integer/Long conversion type 'd' 1471cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1472cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_ByteShortIntegerLongConversionD() { 1473cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] triple = { 1474cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%d", "0" }, 1475cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%10d", " 0" }, 1476cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%-1d", "0" }, 1477cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%+d", "+0" }, 1478cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "% d", " 0" }, 1479cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%,d", "0" }, 1480cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%(d", "0" }, 1481cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%08d", "00000000" }, 1482cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%-+,(11d", "+0 " }, 1483cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%0 ,(11d", " 0000000000" }, 1484cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1485cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%d", "-1" }, 1486cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%10d", " -1" }, 1487cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%-1d", "-1" }, 1488cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%+d", "-1" }, 1489cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "% d", "-1" }, 1490cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%,d", "-1" }, 1491cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%(d", "(1)" }, 1492cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%08d", "-0000001" }, 1493cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%-+,(11d", "(1) " }, 1494cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%0 ,(11d", "(000000001)" }, 1495cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1496cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%d", "-3805" }, 1497cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%10d", " -3805" }, 1498cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%-1d", "-3805" }, 1499cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%+d", "-3805" }, 1500cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "% d", "-3805" }, 1501cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%,d", "-3.805" }, 1502cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%(d", "(3805)" }, 1503cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%08d", "-0003805" }, 1504cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%-+,(11d", "(3.805) " }, 1505cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%0 ,(11d", "(00003.805)" }, 1506cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1507cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%d", "1193046" }, 1508cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%10d", " 1193046" }, 1509cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%-1d", "1193046" }, 1510cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%+d", "+1193046" }, 1511cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "% d", " 1193046" }, 1512cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%,d", "1.193.046" }, 1513cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%(d", "1193046" }, 1514cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%08d", "01193046" }, 1515cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%-+,(11d", "+1.193.046 " }, 1516cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%0 ,(11d", " 01.193.046" }, 1517cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1518cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%d", "-3" }, 1519cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%10d", " -3" }, 1520cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%-1d", "-3" }, 1521cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%+d", "-3" }, 1522cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "% d", "-3" }, 1523cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%,d", "-3" }, 1524cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%(d", "(3)" }, 1525cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%08d", "-0000003" }, 1526cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%-+,(11d", "(3) " }, 1527cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%0 ,(11d", "(000000003)" }, 1528cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1529cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%d", "124076833" }, 1530cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%10d", " 124076833" }, 1531cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%-1d", "124076833" }, 1532cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%+d", "+124076833" }, 1533cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "% d", " 124076833" }, 1534cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%,d", "124.076.833" }, 1535cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%(d", "124076833" }, 1536cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%08d", "124076833" }, 1537cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%-+,(11d", "+124.076.833" }, 1538cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%0 ,(11d", " 124.076.833" }, 1539cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1540cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%d", "-1" }, 1541cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%10d", " -1" }, 1542cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%-1d", "-1" }, 1543cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%+d", "-1" }, 1544cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "% d", "-1" }, 1545cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%,d", "-1" }, 1546cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%(d", "(1)" }, 1547cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%08d", "-0000001" }, 1548cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%-+,(11d", "(1) " }, 1549cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%0 ,(11d", "(000000001)" }, 1550cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 1551cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1552cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 1553cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 1554cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 1555cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f; 1556cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < triple.length; i++) { 1557cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 1558cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) triple[i][pattern], 1559cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath triple[i][input]); 1560cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + triple[i][input] + ",pattern[" 1561cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + triple[i][pattern], triple[i][output], f 1562cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toString()); 1563cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1564cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1565cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1566cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1567cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for legal 1568cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Byte/Short/Integer/Long conversion type 'o' 1569cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1570cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_ByteShortIntegerLongConversionO() { 1571cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] triple = { 1572cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%o", "0" }, 1573cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%-6o", "0 " }, 1574cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%08o", "00000000" }, 1575cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%#o", "00" }, 1576cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%0#11o", "00000000000" }, 1577cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%-#9o", "00 " }, 1578cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1579cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%o", "377" }, 1580cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%-6o", "377 " }, 1581cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%08o", "00000377" }, 1582cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%#o", "0377" }, 1583cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%0#11o", "00000000377" }, 1584cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%-#9o", "0377 " }, 1585cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1586cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%o", "170443" }, 1587cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%-6o", "170443" }, 1588cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%08o", "00170443" }, 1589cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%#o", "0170443" }, 1590cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%0#11o", "00000170443" }, 1591cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%-#9o", "0170443 " }, 1592cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1593cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%o", "4432126" }, 1594cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%-6o", "4432126" }, 1595cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%08o", "04432126" }, 1596cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%#o", "04432126" }, 1597cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%0#11o", "00004432126" }, 1598cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%-#9o", "04432126 " }, 1599cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1600cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%o", "37777777775" }, 1601cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%-6o", "37777777775" }, 1602cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%08o", "37777777775" }, 1603cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%#o", "037777777775" }, 1604cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%0#11o", "037777777775" }, 1605cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%-#9o", "037777777775" }, 1606cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1607cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%o", "731241441" }, 1608cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%-6o", "731241441" }, 1609cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%08o", "731241441" }, 1610cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%#o", "0731241441" }, 1611cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%0#11o", "00731241441" }, 1612cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%-#9o", "0731241441" }, 1613cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1614cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%o", "1777777777777777777777" }, 1615cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%-6o", "1777777777777777777777" }, 1616cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%08o", "1777777777777777777777" }, 1617cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%#o", "01777777777777777777777" }, 1618cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%0#11o", "01777777777777777777777" }, 1619cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%-#9o", "01777777777777777777777" }, 1620cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 1621cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1622cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 1623cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 1624cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 1625cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f; 1626cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < triple.length; i++) { 1627cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.ITALY); 1628cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) triple[i][pattern], 1629cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath triple[i][input]); 1630cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + triple[i][input] + ",pattern[" 1631cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + triple[i][pattern], triple[i][output], f 1632cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toString()); 1633cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1634cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1635cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1636cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1637cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for legal 1638cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Byte/Short/Integer/Long conversion type 'x' and 'X' 1639cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1640cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_ByteShortIntegerLongConversionX() { 1641cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] triple = { 1642cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%x", "0" }, 1643cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%-8x", "0 " }, 1644cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%06x", "000000" }, 1645cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%#x", "0x0" }, 1646cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%0#12x", "0x0000000000" }, 1647cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0, "%-#9x", "0x0 " }, 1648cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1649cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%x", "ff" }, 1650cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%-8x", "ff " }, 1651cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%06x", "0000ff" }, 1652cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%#x", "0xff" }, 1653cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%0#12x", "0x00000000ff" }, 1654cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (byte) 0xff, "%-#9x", "0xff " }, 1655cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1656cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%x", "f123" }, 1657cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%-8x", "f123 " }, 1658cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%06x", "00f123" }, 1659cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%#x", "0xf123" }, 1660cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%0#12x", "0x000000f123" }, 1661cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { (short) 0xf123, "%-#9x", "0xf123 " }, 1662cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1663cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%x", "123456" }, 1664cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%-8x", "123456 " }, 1665cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%06x", "123456" }, 1666cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%#x", "0x123456" }, 1667cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%0#12x", "0x0000123456" }, 1668cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x123456, "%-#9x", "0x123456 " }, 1669cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1670cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%x", "fffffffd" }, 1671cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%-8x", "fffffffd" }, 1672cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%06x", "fffffffd" }, 1673cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%#x", "0xfffffffd" }, 1674cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%0#12x", "0x00fffffffd" }, 1675cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -3, "%-#9x", "0xfffffffd" }, 1676cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1677cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%x", "7654321" }, 1678cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%-8x", "7654321 " }, 1679cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%06x", "7654321" }, 1680cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%#x", "0x7654321" }, 1681cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%0#12x", "0x0007654321" }, 1682cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0x7654321L, "%-#9x", "0x7654321" }, 1683cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1684cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%x", "ffffffffffffffff" }, 1685cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%-8x", "ffffffffffffffff" }, 1686cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%06x", "ffffffffffffffff" }, 1687cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%#x", "0xffffffffffffffff" }, 1688cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%0#12x", "0xffffffffffffffff" }, 1689cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1L, "%-#9x", "0xffffffffffffffff" }, 1690cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 1691cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1692cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 1693cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 1694cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 1695cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f; 1696cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < triple.length; i++) { 1697cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.FRANCE); 1698cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) triple[i][pattern], 1699cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath triple[i][input]); 1700cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + triple[i][input] + ",pattern[" 1701cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + triple[i][pattern], triple[i][output], f 1702cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toString()); 1703cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1704cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.FRANCE); 1705cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) triple[i][pattern], 1706cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath triple[i][input]); 1707cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + triple[i][input] + ",pattern[" 1708cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + triple[i][pattern], triple[i][output], f 1709cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toString()); 1710cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1711cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1712cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1713cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1714cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for Date/Time 1715cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion 1716cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1717cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_DateTimeConversion() { 1718cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 1719cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Date now = new Date(1147327147578L); 1720cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1721cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Calendar paris = Calendar.getInstance(TimeZone 1722cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getTimeZone("Europe/Paris"), Locale.FRANCE); 1723cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath paris.set(2006, 4, 8, 12, 0, 0); 1724cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath paris.set(Calendar.MILLISECOND, 453); 1725cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Calendar china = Calendar.getInstance( 1726cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath TimeZone.getTimeZone("GMT-08:00"), Locale.CHINA); 1727cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath china.set(2006, 4, 8, 12, 0, 0); 1728cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath china.set(Calendar.MILLISECOND, 609); 1729cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1730cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] lowerCaseGermanTriple = { 1731cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'a', "Do." }, //$NON-NLS-2$ 1732cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'a', "So." }, //$NON-NLS-2$ 1733cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'a', "Do." }, //$NON-NLS-2$ 1734cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'a', "Do." }, //$NON-NLS-2$ 1735cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'a', "Mo." }, //$NON-NLS-2$ 1736cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'a', "Mo." }, //$NON-NLS-2$ 1737cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'b', "Jan" }, //$NON-NLS-2$ 1738cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'b', "Aug" }, //$NON-NLS-2$ 1739cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'b', "Jan" }, //$NON-NLS-2$ 1740cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'b', "Mai" }, //$NON-NLS-2$ 1741cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'b', "Mai" }, //$NON-NLS-2$ 1742cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'b', "Mai" }, //$NON-NLS-2$ 1743cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'c', "Do. Jan 01 08:00:00 GMT+08:00 1970" }, //$NON-NLS-2$ 1744cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'c', "So. Aug 17 15:18:47 GMT+08:00 292278994" }, //$NON-NLS-2$ 1745cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'c', "Do. Jan 01 07:59:59 GMT+08:00 1970" }, //$NON-NLS-2$ 1746cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'c', "Do. Mai 11 13:59:07 GMT+08:00 2006" }, //$NON-NLS-2$ 1747cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'c', "Mo. Mai 08 12:00:00 MESZ 2006" }, //$NON-NLS-2$ 1748cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'c', "Mo. Mai 08 12:00:00 GMT-08:00 2006" }, //$NON-NLS-2$ 1749cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'd', "01" }, //$NON-NLS-2$ 1750cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'd', "17" }, //$NON-NLS-2$ 1751cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'd', "01" }, //$NON-NLS-2$ 1752cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'd', "11" }, //$NON-NLS-2$ 1753cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'd', "08" }, //$NON-NLS-2$ 1754cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'd', "08" }, //$NON-NLS-2$ 1755cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'e', "1" }, //$NON-NLS-2$ 1756cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'e', "17" }, //$NON-NLS-2$ 1757cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'e', "1" }, //$NON-NLS-2$ 1758cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'e', "11" }, //$NON-NLS-2$ 1759cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'e', "8" }, //$NON-NLS-2$ 1760cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'e', "8" }, //$NON-NLS-2$ 1761cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'h', "Jan" }, //$NON-NLS-2$ 1762cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'h', "Aug" }, //$NON-NLS-2$ 1763cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'h', "Jan" }, //$NON-NLS-2$ 1764cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'h', "Mai" }, //$NON-NLS-2$ 1765cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'h', "Mai" }, //$NON-NLS-2$ 1766cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'h', "Mai" }, //$NON-NLS-2$ 1767cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'j', "001" }, //$NON-NLS-2$ 1768cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'j', "229" }, //$NON-NLS-2$ 1769cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'j', "001" }, //$NON-NLS-2$ 1770cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'j', "131" }, //$NON-NLS-2$ 1771cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'j', "128" }, //$NON-NLS-2$ 1772cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'j', "128" }, //$NON-NLS-2$ 1773cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'k', "8" }, //$NON-NLS-2$ 1774cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'k', "15" }, //$NON-NLS-2$ 1775cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'k', "7" }, //$NON-NLS-2$ 1776cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'k', "13" }, //$NON-NLS-2$ 1777cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'k', "12" }, //$NON-NLS-2$ 1778cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'k', "12" }, //$NON-NLS-2$ 1779cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'l', "8" }, //$NON-NLS-2$ 1780cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'l', "3" }, //$NON-NLS-2$ 1781cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'l', "7" }, //$NON-NLS-2$ 1782cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'l', "1" }, //$NON-NLS-2$ 1783cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'l', "12" }, //$NON-NLS-2$ 1784cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'l', "12" }, //$NON-NLS-2$ 1785cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'm', "01" }, //$NON-NLS-2$ 1786cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'm', "08" }, //$NON-NLS-2$ 1787cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'm', "01" }, //$NON-NLS-2$ 1788cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'm', "05" }, //$NON-NLS-2$ 1789cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'm', "05" }, //$NON-NLS-2$ 1790cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'm', "05" }, //$NON-NLS-2$ 1791cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'p', "vorm." }, //$NON-NLS-2$ 1792cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'p', "nachm." }, //$NON-NLS-2$ 1793cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'p', "vorm." }, //$NON-NLS-2$ 1794cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'p', "nachm." }, //$NON-NLS-2$ 1795cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'p', "nachm." }, //$NON-NLS-2$ 1796cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'p', "nachm." }, //$NON-NLS-2$ 1797cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'r', "08:00:00 vorm." }, //$NON-NLS-2$ 1798cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'r', "03:18:47 nachm." }, //$NON-NLS-2$ 1799cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'r', "07:59:59 vorm." }, //$NON-NLS-2$ 1800cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'r', "01:59:07 nachm." }, //$NON-NLS-2$ 1801cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'r', "12:00:00 nachm." }, //$NON-NLS-2$ 1802cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'r', "12:00:00 nachm." }, //$NON-NLS-2$ 1803cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 's', "0" }, //$NON-NLS-2$ 1804cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 's', "9223372036854775" }, //$NON-NLS-2$ 1805cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 's', "-1" }, //$NON-NLS-2$ 1806cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 's', "1147327147" }, //$NON-NLS-2$ 1807cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 's', "1147082400" }, //$NON-NLS-2$ 1808cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 's', "1147118400" }, //$NON-NLS-2$ 1809cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'y', "70" }, //$NON-NLS-2$ 1810cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'y', "94" }, //$NON-NLS-2$ 1811cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'y', "70" }, //$NON-NLS-2$ 1812cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'y', "06" }, //$NON-NLS-2$ 1813cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'y', "06" }, //$NON-NLS-2$ 1814cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'y', "06" }, //$NON-NLS-2$ 1815cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'z', "+0800" }, //$NON-NLS-2$ 1816cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'z', "+0800" }, //$NON-NLS-2$ 1817cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'z', "+0800" }, //$NON-NLS-2$ 1818cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'z', "+0800" }, //$NON-NLS-2$ 1819cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'z', "+0100" }, //$NON-NLS-2$ 1820cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'z', "-0800" }, //$NON-NLS-2$ 1821cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1822cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 1823cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1824cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] lowerCaseFranceTriple = { 1825cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'a', "jeu." }, //$NON-NLS-2$ 1826cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'a', "dim." }, //$NON-NLS-2$ 1827cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'a', "jeu." }, //$NON-NLS-2$ 1828cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'a', "jeu." }, //$NON-NLS-2$ 1829cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'a', "lun." }, //$NON-NLS-2$ 1830cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'a', "lun." }, //$NON-NLS-2$ 1831cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'b', "janv." }, //$NON-NLS-2$ 1832cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'b', "ao\u00fbt" }, //$NON-NLS-2$ 1833cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'b', "janv." }, //$NON-NLS-2$ 1834cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'b', "mai" }, //$NON-NLS-2$ 1835cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'b', "mai" }, //$NON-NLS-2$ 1836cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'b', "mai" }, //$NON-NLS-2$ 1837cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'c', "jeu. janv. 01 08:00:00 UTC+08:00 1970" }, //$NON-NLS-2$ 1838cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'c', "dim. ao\u00fbt 17 15:18:47 UTC+08:00 292278994" }, //$NON-NLS-2$ 1839cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'c', "jeu. janv. 01 07:59:59 UTC+08:00 1970" }, //$NON-NLS-2$ 1840cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'c', "jeu. mai 11 13:59:07 UTC+08:00 2006" }, //$NON-NLS-2$ 1841cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'c', "lun. mai 08 12:00:00 HAEC 2006" }, //$NON-NLS-2$ 1842cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'c', "lun. mai 08 12:00:00 UTC-08:00 2006" }, //$NON-NLS-2$ 1843cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'd', "01" }, //$NON-NLS-2$ 1844cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'd', "17" }, //$NON-NLS-2$ 1845cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'd', "01" }, //$NON-NLS-2$ 1846cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'd', "11" }, //$NON-NLS-2$ 1847cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'd', "08" }, //$NON-NLS-2$ 1848cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'd', "08" }, //$NON-NLS-2$ 1849cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'e', "1" }, //$NON-NLS-2$ 1850cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'e', "17" }, //$NON-NLS-2$ 1851cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'e', "1" }, //$NON-NLS-2$ 1852cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'e', "11" }, //$NON-NLS-2$ 1853cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'e', "8" }, //$NON-NLS-2$ 1854cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'e', "8" }, //$NON-NLS-2$ 1855cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'h', "janv." }, //$NON-NLS-2$ 1856cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'h', "ao\u00fbt" }, //$NON-NLS-2$ 1857cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'h', "janv." }, //$NON-NLS-2$ 1858cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'h', "mai" }, //$NON-NLS-2$ 1859cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'h', "mai" }, //$NON-NLS-2$ 1860cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'h', "mai" }, //$NON-NLS-2$ 1861cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'j', "001" }, //$NON-NLS-2$ 1862cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'j', "229" }, //$NON-NLS-2$ 1863cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'j', "001" }, //$NON-NLS-2$ 1864cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'j', "131" }, //$NON-NLS-2$ 1865cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'j', "128" }, //$NON-NLS-2$ 1866cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'j', "128" }, //$NON-NLS-2$ 1867cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'k', "8" }, //$NON-NLS-2$ 1868cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'k', "15" }, //$NON-NLS-2$ 1869cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'k', "7" }, //$NON-NLS-2$ 1870cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'k', "13" }, //$NON-NLS-2$ 1871cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'k', "12" }, //$NON-NLS-2$ 1872cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'k', "12" }, //$NON-NLS-2$ 1873cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'l', "8" }, //$NON-NLS-2$ 1874cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'l', "3" }, //$NON-NLS-2$ 1875cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'l', "7" }, //$NON-NLS-2$ 1876cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'l', "1" }, //$NON-NLS-2$ 1877cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'l', "12" }, //$NON-NLS-2$ 1878cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'l', "12" }, //$NON-NLS-2$ 1879cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'm', "01" }, //$NON-NLS-2$ 1880cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'm', "08" }, //$NON-NLS-2$ 1881cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'm', "01" }, //$NON-NLS-2$ 1882cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'm', "05" }, //$NON-NLS-2$ 1883cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'm', "05" }, //$NON-NLS-2$ 1884cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'm', "05" }, //$NON-NLS-2$ 1885cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'p', "am" }, //$NON-NLS-2$ 1886cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'p', "pm" }, //$NON-NLS-2$ 1887cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'p', "am" }, //$NON-NLS-2$ 1888cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'p', "pm" }, //$NON-NLS-2$ 1889cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'p', "pm" }, //$NON-NLS-2$ 1890cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'p', "pm" }, //$NON-NLS-2$ 1891cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'r', "08:00:00 AM" }, //$NON-NLS-2$ 1892cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'r', "03:18:47 PM" }, //$NON-NLS-2$ 1893cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'r', "07:59:59 AM" }, //$NON-NLS-2$ 1894cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'r', "01:59:07 PM" }, //$NON-NLS-2$ 1895cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'r', "12:00:00 PM" }, //$NON-NLS-2$ 1896cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'r', "12:00:00 PM" }, //$NON-NLS-2$ 1897cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 's', "0" }, //$NON-NLS-2$ 1898cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 's', "9223372036854775" }, //$NON-NLS-2$ 1899cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 's', "-1" }, //$NON-NLS-2$ 1900cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 's', "1147327147" }, //$NON-NLS-2$ 1901cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 's', "1147082400" }, //$NON-NLS-2$ 1902cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 's', "1147118400" }, //$NON-NLS-2$ 1903cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'y', "70" }, //$NON-NLS-2$ 1904cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'y', "94" }, //$NON-NLS-2$ 1905cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'y', "70" }, //$NON-NLS-2$ 1906cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'y', "06" }, //$NON-NLS-2$ 1907cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'y', "06" }, //$NON-NLS-2$ 1908cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'y', "06" }, //$NON-NLS-2$ 1909cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'z', "+0800" }, //$NON-NLS-2$ 1910cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'z', "+0800" }, //$NON-NLS-2$ 1911cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'z', "+0800" }, //$NON-NLS-2$ 1912cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'z', "+0800" }, //$NON-NLS-2$ 1913cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'z', "+0100" }, //$NON-NLS-2$ 1914cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'z', "-0800" }, //$NON-NLS-2$ 1915cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1916cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 1917cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1918cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] lowerCaseJapanTriple = { 1919cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'a', "\u6728" }, //$NON-NLS-2$ 1920cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'a', "\u65e5" }, //$NON-NLS-2$ 1921cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'a', "\u6728" }, //$NON-NLS-2$ 1922cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'a', "\u6728" }, //$NON-NLS-2$ 1923cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'a', "\u6708" }, //$NON-NLS-2$ 1924cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'a', "\u6708" }, //$NON-NLS-2$ 1925cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'b', "1\u6708" }, //$NON-NLS-2$ 1926cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'b', "8\u6708" }, //$NON-NLS-2$ 1927cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'b', "1\u6708" }, //$NON-NLS-2$ 1928cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'b', "5\u6708" }, //$NON-NLS-2$ 1929cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'b', "5\u6708" }, //$NON-NLS-2$ 1930cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'b', "5\u6708" }, //$NON-NLS-2$ 1931cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'c', "\u6728 1\u6708 01 08:00:00 GMT+08:00 1970" }, //$NON-NLS-2$ 1932cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'c', "\u65e5 8\u6708 17 15:18:47 GMT+08:00 292278994" }, //$NON-NLS-2$ 1933cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'c', "\u6728 1\u6708 01 07:59:59 GMT+08:00 1970" }, //$NON-NLS-2$ 1934cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'c', "\u6728 5\u6708 11 13:59:07 GMT+08:00 2006" }, //$NON-NLS-2$ 1935cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'c', "\u6708 5\u6708 08 12:00:00 GMT+02:00 2006" }, //$NON-NLS-2$ 1936cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'c', "\u6708 5\u6708 08 12:00:00 GMT-08:00 2006" }, //$NON-NLS-2$ 1937cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'd', "01" }, //$NON-NLS-2$ 1938cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'd', "17" }, //$NON-NLS-2$ 1939cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'd', "01" }, //$NON-NLS-2$ 1940cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'd', "11" }, //$NON-NLS-2$ 1941cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'd', "08" }, //$NON-NLS-2$ 1942cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'd', "08" }, //$NON-NLS-2$ 1943cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'e', "1" }, //$NON-NLS-2$ 1944cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'e', "17" }, //$NON-NLS-2$ 1945cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'e', "1" }, //$NON-NLS-2$ 1946cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'e', "11" }, //$NON-NLS-2$ 1947cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'e', "8" }, //$NON-NLS-2$ 1948cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'e', "8" }, //$NON-NLS-2$ 1949cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'h', "1\u6708" }, //$NON-NLS-2$ 1950cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'h', "8\u6708" }, //$NON-NLS-2$ 1951cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'h', "1\u6708" }, //$NON-NLS-2$ 1952cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'h', "5\u6708" }, //$NON-NLS-2$ 1953cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'h', "5\u6708" }, //$NON-NLS-2$ 1954cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'h', "5\u6708" }, //$NON-NLS-2$ 1955cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'j', "001" }, //$NON-NLS-2$ 1956cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'j', "229" }, //$NON-NLS-2$ 1957cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'j', "001" }, //$NON-NLS-2$ 1958cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'j', "131" }, //$NON-NLS-2$ 1959cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'j', "128" }, //$NON-NLS-2$ 1960cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'j', "128" }, //$NON-NLS-2$ 1961cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'k', "8" }, //$NON-NLS-2$ 1962cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'k', "15" }, //$NON-NLS-2$ 1963cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'k', "7" }, //$NON-NLS-2$ 1964cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'k', "13" }, //$NON-NLS-2$ 1965cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'k', "12" }, //$NON-NLS-2$ 1966cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'k', "12" }, //$NON-NLS-2$ 1967cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'l', "8" }, //$NON-NLS-2$ 1968cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'l', "3" }, //$NON-NLS-2$ 1969cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'l', "7" }, //$NON-NLS-2$ 1970cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'l', "1" }, //$NON-NLS-2$ 1971cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'l', "12" }, //$NON-NLS-2$ 1972cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'l', "12" }, //$NON-NLS-2$ 1973cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'm', "01" }, //$NON-NLS-2$ 1974cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'm', "08" }, //$NON-NLS-2$ 1975cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'm', "01" }, //$NON-NLS-2$ 1976cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'm', "05" }, //$NON-NLS-2$ 1977cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'm', "05" }, //$NON-NLS-2$ 1978cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'm', "05" }, //$NON-NLS-2$ 1979cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'p', "\u5348\u524d" }, //$NON-NLS-2$ 1980cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'p', "\u5348\u5f8c" }, //$NON-NLS-2$ 1981cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'p', "\u5348\u524d" }, //$NON-NLS-2$ 1982cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'p', "\u5348\u5f8c" }, //$NON-NLS-2$ 1983cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'p', "\u5348\u5f8c" }, //$NON-NLS-2$ 1984cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'p', "\u5348\u5f8c" }, //$NON-NLS-2$ 1985cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'r', "08:00:00 \u5348\u524d" }, //$NON-NLS-2$ 1986cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'r', "03:18:47 \u5348\u5f8c" }, //$NON-NLS-2$ 1987cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'r', "07:59:59 \u5348\u524d" }, //$NON-NLS-2$ 1988cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'r', "01:59:07 \u5348\u5f8c" }, //$NON-NLS-2$ 1989cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'r', "12:00:00 \u5348\u5f8c" }, //$NON-NLS-2$ 1990cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'r', "12:00:00 \u5348\u5f8c" }, //$NON-NLS-2$ 1991cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 's', "0" }, //$NON-NLS-2$ 1992cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 's', "9223372036854775" }, //$NON-NLS-2$ 1993cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 's', "-1" }, //$NON-NLS-2$ 1994cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 's', "1147327147" }, //$NON-NLS-2$ 1995cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 's', "1147082400" }, //$NON-NLS-2$ 1996cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 's', "1147118400" }, //$NON-NLS-2$ 1997cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'y', "70" }, //$NON-NLS-2$ 1998cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'y', "94" }, //$NON-NLS-2$ 1999cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'y', "70" }, //$NON-NLS-2$ 2000cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'y', "06" }, //$NON-NLS-2$ 2001cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'y', "06" }, //$NON-NLS-2$ 2002cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'y', "06" }, //$NON-NLS-2$ 2003cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'z', "+0800" }, //$NON-NLS-2$ 2004cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'z', "+0800" }, //$NON-NLS-2$ 2005cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'z', "+0800" }, //$NON-NLS-2$ 2006cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'z', "+0800" }, //$NON-NLS-2$ 2007cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'z', "+0100" }, //$NON-NLS-2$ 2008cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'z', "-0800" }, //$NON-NLS-2$ 2009cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 2010cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2011cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 2012cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 2013cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 2014cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < 90; i++) { 2015cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // go through legal conversion 2016cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String formatSpecifier = "%t" + lowerCaseGermanTriple[i][pattern]; //$NON-NLS-2$ 2017cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String formatSpecifierUpper = "%T" + lowerCaseGermanTriple[i][pattern]; //$NON-NLS-2$ 2018cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test '%t' 2019cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2020cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(formatSpecifier, lowerCaseGermanTriple[i][input]); 2021cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Format pattern: " + formatSpecifier //$NON-NLS-2$ 2022cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " Argument: " + lowerCaseGermanTriple[i][input], //$NON-NLS-2$ 2023cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath lowerCaseGermanTriple[i][output], f.toString()); 2024cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2025cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2026cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(Locale.FRANCE, formatSpecifier, lowerCaseFranceTriple[i][input]); 2027cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Format pattern: " + formatSpecifier //$NON-NLS-2$ 2028cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " Argument: " + lowerCaseFranceTriple[i][input], //$NON-NLS-2$ 2029cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath lowerCaseFranceTriple[i][output], f.toString()); 2030cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2031cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2032cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(Locale.JAPAN, formatSpecifier, lowerCaseJapanTriple[i][input]); 2033cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Format pattern: " + formatSpecifier //$NON-NLS-2$ 2034cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " Argument: " + lowerCaseJapanTriple[i][input], //$NON-NLS-2$ 2035cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath lowerCaseJapanTriple[i][output], f.toString()); 2036cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2037cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test '%T' 2038cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2039cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(formatSpecifierUpper, lowerCaseGermanTriple[i][input]); 2040cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Format pattern: " + formatSpecifierUpper //$NON-NLS-2$ 2041cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " Argument: " + lowerCaseGermanTriple[i][input], //$NON-NLS-2$ 2042cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ((String) lowerCaseGermanTriple[i][output]) 2043cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.US), f.toString()); 2044cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2045cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2046cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(Locale.FRANCE, formatSpecifierUpper, lowerCaseFranceTriple[i][input]); 2047cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Format pattern: " + formatSpecifierUpper //$NON-NLS-2$ 2048cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " Argument: " + lowerCaseFranceTriple[i][input], //$NON-NLS-2$ 2049cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ((String) lowerCaseFranceTriple[i][output]) 2050cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.US), f.toString()); 2051cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2052cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2053cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(Locale.JAPAN, formatSpecifierUpper, lowerCaseJapanTriple[i][input]); 2054cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Format pattern: " + formatSpecifierUpper //$NON-NLS-2$ 2055cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " Argument: " + lowerCaseJapanTriple[i][input], //$NON-NLS-2$ 2056cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ((String) lowerCaseJapanTriple[i][output]) 2057cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.US), f.toString()); 2058cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2059cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2060cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] upperCaseGermanTriple = { 2061cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'A', "Donnerstag" }, //$NON-NLS-2$ 2062cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'A', "Sonntag" }, //$NON-NLS-2$ 2063cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'A', "Donnerstag" }, //$NON-NLS-2$ 2064cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'A', "Donnerstag" }, //$NON-NLS-2$ 2065cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'A', "Montag" }, //$NON-NLS-2$ 2066cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'A', "Montag" }, //$NON-NLS-2$ 2067cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'B', "Januar" }, //$NON-NLS-2$ 2068cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'B', "August" }, //$NON-NLS-2$ 2069cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'B', "Januar" }, //$NON-NLS-2$ 2070cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'B', "Mai" }, //$NON-NLS-2$ 2071cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'B', "Mai" }, //$NON-NLS-2$ 2072cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'B', "Mai" }, //$NON-NLS-2$ 2073cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'C', "19" }, //$NON-NLS-2$ 2074cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'C', "2922789" }, //$NON-NLS-2$ 2075cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'C', "19" }, //$NON-NLS-2$ 2076cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'C', "20" }, //$NON-NLS-2$ 2077cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'C', "20" }, //$NON-NLS-2$ 2078cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'C', "20" }, //$NON-NLS-2$ 2079cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'D', "01/01/70" }, //$NON-NLS-2$ 2080cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'D', "08/17/94" }, //$NON-NLS-2$ 2081cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'D', "01/01/70" }, //$NON-NLS-2$ 2082cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'D', "05/11/06" }, //$NON-NLS-2$ 2083cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'D', "05/08/06" }, //$NON-NLS-2$ 2084cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'D', "05/08/06" }, //$NON-NLS-2$ 2085cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'F', "1970-01-01" }, //$NON-NLS-2$ 2086cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'F', "292278994-08-17" }, //$NON-NLS-2$ 2087cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'F', "1970-01-01" }, //$NON-NLS-2$ 2088cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'F', "2006-05-11" }, //$NON-NLS-2$ 2089cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'F', "2006-05-08" }, //$NON-NLS-2$ 2090cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'F', "2006-05-08" }, //$NON-NLS-2$ 2091cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'H', "08" }, //$NON-NLS-2$ 2092cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'H', "15" }, //$NON-NLS-2$ 2093cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'H', "07" }, //$NON-NLS-2$ 2094cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'H', "13" }, //$NON-NLS-2$ 2095cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'H', "12" }, //$NON-NLS-2$ 2096cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'H', "12" }, //$NON-NLS-2$ 2097cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'I', "08" }, //$NON-NLS-2$ 2098cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'I', "03" }, //$NON-NLS-2$ 2099cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'I', "07" }, //$NON-NLS-2$ 2100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'I', "01" }, //$NON-NLS-2$ 2101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'I', "12" }, //$NON-NLS-2$ 2102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'I', "12" }, //$NON-NLS-2$ 2103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'L', "000" }, //$NON-NLS-2$ 2104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'L', "807" }, //$NON-NLS-2$ 2105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'L', "000" }, //$NON-NLS-2$ 2106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'L', "578" }, //$NON-NLS-2$ 2107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'L', "453" }, //$NON-NLS-2$ 2108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'L', "609" }, //$NON-NLS-2$ 2109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'M', "00" }, //$NON-NLS-2$ 2110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'M', "18" }, //$NON-NLS-2$ 2111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'M', "59" }, //$NON-NLS-2$ 2112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'M', "59" }, //$NON-NLS-2$ 2113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'M', "00" }, //$NON-NLS-2$ 2114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'M', "00" }, //$NON-NLS-2$ 2115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'N', "000000000" }, //$NON-NLS-2$ 2116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'N', "807000000" }, //$NON-NLS-2$ 2117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'N', "000000000" }, //$NON-NLS-2$ 2118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'N', "578000000" }, //$NON-NLS-2$ 2119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'N', "609000000" }, //$NON-NLS-2$ 2120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'N', "609000000" }, //$NON-NLS-2$ 2121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'Q', "0" }, //$NON-NLS-2$ 2122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'Q', "9223372036854775807" }, //$NON-NLS-2$ 2123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'Q', "-1000" }, //$NON-NLS-2$ 2124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'Q', "1147327147578" }, //$NON-NLS-2$ 2125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'Q', "1147082400453" }, //$NON-NLS-2$ 2126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'Q', "1147118400609" }, //$NON-NLS-2$ 2127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'R', "08:00" }, //$NON-NLS-2$ 2128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'R', "15:18" }, //$NON-NLS-2$ 2129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'R', "07:59" }, //$NON-NLS-2$ 2130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'R', "13:59" }, //$NON-NLS-2$ 2131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'R', "12:00" }, //$NON-NLS-2$ 2132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'R', "12:00" }, //$NON-NLS-2$ 2133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'S', "00" }, //$NON-NLS-2$ 2134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'S', "47" }, //$NON-NLS-2$ 2135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'S', "59" }, //$NON-NLS-2$ 2136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'S', "07" }, //$NON-NLS-2$ 2137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'S', "00" }, //$NON-NLS-2$ 2138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'S', "00" }, //$NON-NLS-2$ 2139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'T', "08:00:00" }, //$NON-NLS-2$ 2140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'T', "15:18:47" }, //$NON-NLS-2$ 2141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'T', "07:59:59" }, //$NON-NLS-2$ 2142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'T', "13:59:07" }, //$NON-NLS-2$ 2143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'T', "12:00:00" }, //$NON-NLS-2$ 2144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'T', "12:00:00" }, //$NON-NLS-2$ 2145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'Y', "1970" }, //$NON-NLS-2$ 2146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'Y', "292278994" }, //$NON-NLS-2$ 2147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'Y', "1970" }, //$NON-NLS-2$ 2148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'Y', "2006" }, //$NON-NLS-2$ 2149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'Y', "2006" }, //$NON-NLS-2$ 2150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'Y', "2006" }, //$NON-NLS-2$ 2151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'Z', "CST" }, //$NON-NLS-2$ 2152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'Z', "CST" }, //$NON-NLS-2$ 2153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'Z', "CST" }, //$NON-NLS-2$ 2154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'Z', "CST" }, //$NON-NLS-2$ 2155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'Z', "CEST" }, //$NON-NLS-2$ 2156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'Z', "GMT-08:00" }, //$NON-NLS-2$ 2157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 2159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] upperCaseFranceTriple = { 2161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'A', "jeudi" }, //$NON-NLS-2$ 2162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'A', "dimanche" }, //$NON-NLS-2$ 2163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'A', "jeudi" }, //$NON-NLS-2$ 2164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'A', "jeudi" }, //$NON-NLS-2$ 2165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'A', "lundi" }, //$NON-NLS-2$ 2166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'A', "lundi" }, //$NON-NLS-2$ 2167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'B', "janvier" }, //$NON-NLS-2$ 2168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'B', "ao\u00fbt" }, //$NON-NLS-2$ 2169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'B', "janvier" }, //$NON-NLS-2$ 2170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'B', "mai" }, //$NON-NLS-2$ 2171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'B', "mai" }, //$NON-NLS-2$ 2172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'B', "mai" }, //$NON-NLS-2$ 2173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'C', "19" }, //$NON-NLS-2$ 2174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'C', "2922789" }, //$NON-NLS-2$ 2175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'C', "19" }, //$NON-NLS-2$ 2176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'C', "20" }, //$NON-NLS-2$ 2177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'C', "20" }, //$NON-NLS-2$ 2178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'C', "20" }, //$NON-NLS-2$ 2179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'D', "01/01/70" }, //$NON-NLS-2$ 2180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'D', "08/17/94" }, //$NON-NLS-2$ 2181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'D', "01/01/70" }, //$NON-NLS-2$ 2182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'D', "05/11/06" }, //$NON-NLS-2$ 2183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'D', "05/08/06" }, //$NON-NLS-2$ 2184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'D', "05/08/06" }, //$NON-NLS-2$ 2185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'F', "1970-01-01" }, //$NON-NLS-2$ 2186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'F', "292278994-08-17" }, //$NON-NLS-2$ 2187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'F', "1970-01-01" }, //$NON-NLS-2$ 2188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'F', "2006-05-11" }, //$NON-NLS-2$ 2189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'F', "2006-05-08" }, //$NON-NLS-2$ 2190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'F', "2006-05-08" }, //$NON-NLS-2$ 2191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'H', "08" }, //$NON-NLS-2$ 2192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'H', "15" }, //$NON-NLS-2$ 2193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'H', "07" }, //$NON-NLS-2$ 2194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'H', "13" }, //$NON-NLS-2$ 2195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'H', "12" }, //$NON-NLS-2$ 2196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'H', "12" }, //$NON-NLS-2$ 2197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'I', "08" }, //$NON-NLS-2$ 2198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'I', "03" }, //$NON-NLS-2$ 2199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'I', "07" }, //$NON-NLS-2$ 2200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'I', "01" }, //$NON-NLS-2$ 2201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'I', "12" }, //$NON-NLS-2$ 2202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'I', "12" }, //$NON-NLS-2$ 2203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'L', "000" }, //$NON-NLS-2$ 2204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'L', "807" }, //$NON-NLS-2$ 2205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'L', "000" }, //$NON-NLS-2$ 2206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'L', "578" }, //$NON-NLS-2$ 2207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'L', "453" }, //$NON-NLS-2$ 2208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'L', "609" }, //$NON-NLS-2$ 2209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'M', "00" }, //$NON-NLS-2$ 2210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'M', "18" }, //$NON-NLS-2$ 2211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'M', "59" }, //$NON-NLS-2$ 2212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'M', "59" }, //$NON-NLS-2$ 2213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'M', "00" }, //$NON-NLS-2$ 2214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'M', "00" }, //$NON-NLS-2$ 2215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'N', "000000000" }, //$NON-NLS-2$ 2216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'N', "807000000" }, //$NON-NLS-2$ 2217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'N', "000000000" }, //$NON-NLS-2$ 2218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'N', "578000000" }, //$NON-NLS-2$ 2219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'N', "453000000" }, //$NON-NLS-2$ 2220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'N', "468000000" }, //$NON-NLS-2$ 2221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'Q', "0" }, //$NON-NLS-2$ 2222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'Q', "9223372036854775807" }, //$NON-NLS-2$ 2223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'Q', "-1000" }, //$NON-NLS-2$ 2224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'Q', "1147327147578" }, //$NON-NLS-2$ 2225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'Q', "1147082400453" }, //$NON-NLS-2$ 2226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'Q', "1147118400609" }, //$NON-NLS-2$ 2227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'R', "08:00" }, //$NON-NLS-2$ 2228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'R', "15:18" }, //$NON-NLS-2$ 2229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'R', "07:59" }, //$NON-NLS-2$ 2230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'R', "13:59" }, //$NON-NLS-2$ 2231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'R', "12:00" }, //$NON-NLS-2$ 2232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'R', "12:00" }, //$NON-NLS-2$ 2233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'S', "00" }, //$NON-NLS-2$ 2234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'S', "47" }, //$NON-NLS-2$ 2235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'S', "59" }, //$NON-NLS-2$ 2236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'S', "07" }, //$NON-NLS-2$ 2237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'S', "00" }, //$NON-NLS-2$ 2238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'S', "00" }, //$NON-NLS-2$ 2239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'T', "08:00:00" }, //$NON-NLS-2$ 2240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'T', "15:18:47" }, //$NON-NLS-2$ 2241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'T', "07:59:59" }, //$NON-NLS-2$ 2242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'T', "13:59:07" }, //$NON-NLS-2$ 2243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'T', "12:00:00" }, //$NON-NLS-2$ 2244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'T', "12:00:00" }, //$NON-NLS-2$ 2245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'Y', "1970" }, //$NON-NLS-2$ 2246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'Y', "292278994" }, //$NON-NLS-2$ 2247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'Y', "1970" }, //$NON-NLS-2$ 2248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'Y', "2006" }, //$NON-NLS-2$ 2249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'Y', "2006" }, //$NON-NLS-2$ 2250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'Y', "2006" }, //$NON-NLS-2$ 2251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'Z', "CST" }, //$NON-NLS-2$ 2252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'Z', "CST" }, //$NON-NLS-2$ 2253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'Z', "CST" }, //$NON-NLS-2$ 2254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'Z', "CST" }, //$NON-NLS-2$ 2255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'Z', "CEST" }, //$NON-NLS-2$ 2256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'Z', "GMT-08:00" }, //$NON-NLS-2$ 2257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 2259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] upperCaseJapanTriple = { 2261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'A', "\u6728\u66dc\u65e5" }, //$NON-NLS-2$ 2262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'A', "\u65e5\u66dc\u65e5" }, //$NON-NLS-2$ 2263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'A', "\u6728\u66dc\u65e5" }, //$NON-NLS-2$ 2264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'A', "\u6728\u66dc\u65e5" }, //$NON-NLS-2$ 2265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'A', "\u6708\u66dc\u65e5" }, //$NON-NLS-2$ 2266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'A', "\u6708\u66dc\u65e5" }, //$NON-NLS-2$ 2267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'B', "1\u6708" }, //$NON-NLS-2$ 2268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'B', "8\u6708" }, //$NON-NLS-2$ 2269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'B', "1\u6708" }, //$NON-NLS-2$ 2270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'B', "5\u6708" }, //$NON-NLS-2$ 2271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'B', "5\u6708" }, //$NON-NLS-2$ 2272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'B', "5\u6708" }, //$NON-NLS-2$ 2273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'C', "19" }, //$NON-NLS-2$ 2274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'C', "2922789" }, //$NON-NLS-2$ 2275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'C', "19" }, //$NON-NLS-2$ 2276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'C', "20" }, //$NON-NLS-2$ 2277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'C', "20" }, //$NON-NLS-2$ 2278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'C', "20" }, //$NON-NLS-2$ 2279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'D', "01/01/70" }, //$NON-NLS-2$ 2280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'D', "08/17/94" }, //$NON-NLS-2$ 2281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'D', "01/01/70" }, //$NON-NLS-2$ 2282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'D', "05/11/06" }, //$NON-NLS-2$ 2283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'D', "05/08/06" }, //$NON-NLS-2$ 2284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'D', "05/08/06" }, //$NON-NLS-2$ 2285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'F', "1970-01-01" }, //$NON-NLS-2$ 2286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'F', "292278994-08-17" }, //$NON-NLS-2$ 2287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'F', "1970-01-01" }, //$NON-NLS-2$ 2288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'F', "2006-05-11" }, //$NON-NLS-2$ 2289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'F', "2006-05-08" }, //$NON-NLS-2$ 2290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'F', "2006-05-08" }, //$NON-NLS-2$ 2291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'H', "08" }, //$NON-NLS-2$ 2292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'H', "15" }, //$NON-NLS-2$ 2293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'H', "07" }, //$NON-NLS-2$ 2294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'H', "13" }, //$NON-NLS-2$ 2295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'H', "12" }, //$NON-NLS-2$ 2296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'H', "12" }, //$NON-NLS-2$ 2297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'I', "08" }, //$NON-NLS-2$ 2298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'I', "03" }, //$NON-NLS-2$ 2299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'I', "07" }, //$NON-NLS-2$ 2300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'I', "01" }, //$NON-NLS-2$ 2301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'I', "12" }, //$NON-NLS-2$ 2302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'I', "12" }, //$NON-NLS-2$ 2303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'L', "000" }, //$NON-NLS-2$ 2304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'L', "807" }, //$NON-NLS-2$ 2305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'L', "000" }, //$NON-NLS-2$ 2306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'L', "578" }, //$NON-NLS-2$ 2307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'L', "453" }, //$NON-NLS-2$ 2308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'L', "609" }, //$NON-NLS-2$ 2309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'M', "00" }, //$NON-NLS-2$ 2310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'M', "18" }, //$NON-NLS-2$ 2311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'M', "59" }, //$NON-NLS-2$ 2312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'M', "59" }, //$NON-NLS-2$ 2313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'M', "00" }, //$NON-NLS-2$ 2314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'M', "00" }, //$NON-NLS-2$ 2315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'N', "000000000" }, //$NON-NLS-2$ 2316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'N', "807000000" }, //$NON-NLS-2$ 2317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'N', "000000000" }, //$NON-NLS-2$ 2318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'N', "578000000" }, //$NON-NLS-2$ 2319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'N', "453000000" }, //$NON-NLS-2$ 2320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'N', "468000000" }, //$NON-NLS-2$ 2321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'Q', "0" }, //$NON-NLS-2$ 2322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'Q', "9223372036854775807" }, //$NON-NLS-2$ 2323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'Q', "-1000" }, //$NON-NLS-2$ 2324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'Q', "1147327147578" }, //$NON-NLS-2$ 2325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'Q', "1147082400453" }, //$NON-NLS-2$ 2326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'Q', "1147118400609" }, //$NON-NLS-2$ 2327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'R', "08:00" }, //$NON-NLS-2$ 2328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'R', "15:18" }, //$NON-NLS-2$ 2329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'R', "07:59" }, //$NON-NLS-2$ 2330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'R', "13:59" }, //$NON-NLS-2$ 2331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'R', "12:00" }, //$NON-NLS-2$ 2332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'R', "12:00" }, //$NON-NLS-2$ 2333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'S', "00" }, //$NON-NLS-2$ 2334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'S', "47" }, //$NON-NLS-2$ 2335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'S', "59" }, //$NON-NLS-2$ 2336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'S', "07" }, //$NON-NLS-2$ 2337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'S', "00" }, //$NON-NLS-2$ 2338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'S', "00" }, //$NON-NLS-2$ 2339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'T', "08:00:00" }, //$NON-NLS-2$ 2340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'T', "15:18:47" }, //$NON-NLS-2$ 2341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'T', "07:59:59" }, //$NON-NLS-2$ 2342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'T', "13:59:07" }, //$NON-NLS-2$ 2343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'T', "12:00:00" }, //$NON-NLS-2$ 2344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'T', "12:00:00" }, //$NON-NLS-2$ 2345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'Y', "1970" }, //$NON-NLS-2$ 2346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'Y', "292278994" }, //$NON-NLS-2$ 2347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'Y', "1970" }, //$NON-NLS-2$ 2348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'Y', "2006" }, //$NON-NLS-2$ 2349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'Y', "2006" }, //$NON-NLS-2$ 2350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'Y', "2006" }, //$NON-NLS-2$ 2351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0L, 'Z', "CST" }, //$NON-NLS-2$ 2352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Long.MAX_VALUE, 'Z', "CST" }, //$NON-NLS-2$ 2353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1000L, 'Z', "CST" }, //$NON-NLS-2$ 2354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new Date(1147327147578L), 'Z', "CST" }, //$NON-NLS-2$ 2355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { paris, 'Z', "CEST" }, //$NON-NLS-2$ 2356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { china, 'Z', "GMT-08:00" }, //$NON-NLS-2$ 2357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 2358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < 90; i++) { 2361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String formatSpecifier = "%t" + upperCaseGermanTriple[i][pattern]; //$NON-NLS-2$ 2362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String formatSpecifierUpper = "%T" + upperCaseGermanTriple[i][pattern]; //$NON-NLS-2$ 2363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if ((Character) upperCaseGermanTriple[i][pattern] == 'N') { 2364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // result can't be predicted on RI, so skip this test 2365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath continue; 2366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test '%t' 2368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.JAPAN); 2369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(formatSpecifier, upperCaseJapanTriple[i][input]); 2370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Format pattern: " + formatSpecifier //$NON-NLS-2$ 2371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " Argument: " + upperCaseJapanTriple[i][input], //$NON-NLS-2$ 2372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath upperCaseJapanTriple[i][output], f.toString()); 2373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.JAPAN); 2375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(Locale.GERMAN, formatSpecifier, upperCaseGermanTriple[i][input]); 2376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Format pattern: " + formatSpecifier //$NON-NLS-2$ 2377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " Argument: " + upperCaseGermanTriple[i][input], //$NON-NLS-2$ 2378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath upperCaseGermanTriple[i][output], f.toString()); 2379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.JAPAN); 2381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(Locale.FRANCE, formatSpecifier, upperCaseFranceTriple[i][input]); 2382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Format pattern: " + formatSpecifier //$NON-NLS-2$ 2383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " Argument: " + upperCaseFranceTriple[i][input], //$NON-NLS-2$ 2384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath upperCaseFranceTriple[i][output], f.toString()); 2385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test '%T' 2387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(formatSpecifierUpper, upperCaseGermanTriple[i][input]); 2389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Format pattern: " + formatSpecifierUpper //$NON-NLS-2$ 2390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " Argument: " + upperCaseGermanTriple[i][input], //$NON-NLS-2$ 2391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ((String) upperCaseGermanTriple[i][output]) 2392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.US), f.toString()); 2393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(Locale.JAPAN, formatSpecifierUpper, upperCaseJapanTriple[i][input]); 2396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Format pattern: " + formatSpecifierUpper //$NON-NLS-2$ 2397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " Argument: " + upperCaseJapanTriple[i][input], //$NON-NLS-2$ 2398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ((String) upperCaseJapanTriple[i][output]) 2399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.US), f.toString()); 2400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(Locale.FRANCE, formatSpecifierUpper, upperCaseFranceTriple[i][input]); 2403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Format pattern: " + formatSpecifierUpper //$NON-NLS-2$ 2404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " Argument: " + upperCaseFranceTriple[i][input], //$NON-NLS-2$ 2405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ((String) upperCaseFranceTriple[i][output]) 2406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.US), f.toString()); 2407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 2410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%-10ta", now); //$NON-NLS-2$ 2411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Thu ", f.toString()); //$NON-NLS-2$ 2412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 2414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%10000000000000000000000000000000001ta", now); //$NON-NLS-2$ 2415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Thu", f.toString().trim()); //$NON-NLS-2$ 2416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 2419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for null argment for 2420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Byte/Short/Integer/Long/BigInteger conversion 2421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 2422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_ByteShortIntegerLongNullConversion() { 2423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(Locale.FRANCE); 2425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%d%<o%<x%<5X", (Integer) null); 2426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("nullnullnull NULL", f.toString()); 2427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%d%<#03o %<0#4x%<6X", (Long) null); 2430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("nullnull null NULL", f.toString()); 2431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%(+,07d%<o %<x%<6X", (Byte) null); 2434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" nullnull null NULL", f.toString()); 2435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.ITALY); 2437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%(+,07d%<o %<x%<0#6X", (Short) null); 2438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" nullnull null NULL", f.toString()); 2439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%(+,-7d%<( o%<+(x %<( 06X", (BigInteger) null); 2442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("null nullnull NULL", f.toString()); 2443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 2446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for legal 2447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * BigInteger conversion type 'd' 2448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 2449cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$LBigInteger() { 2450cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] tripleD = { 2451cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%d", "123456789012345678901234567890" }, //$NON-NLS-2$ 2452cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%10d", "123456789012345678901234567890" }, //$NON-NLS-2$ 2453cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%-1d", "123456789012345678901234567890" }, //$NON-NLS-2$ 2454cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%+d", "+123456789012345678901234567890" }, //$NON-NLS-2$ 2455cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "% d", " 123456789012345678901234567890" }, //$NON-NLS-2$ 2456cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%,d", "123.456.789.012.345.678.901.234.567.890" }, //$NON-NLS-2$ 2457cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%(d", "123456789012345678901234567890" }, //$NON-NLS-2$ 2458cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%08d", "123456789012345678901234567890" }, //$NON-NLS-2$ 2459cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%-+,(11d", "+123.456.789.012.345.678.901.234.567.890" }, //$NON-NLS-2$ 2460cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%0 ,(11d", " 123.456.789.012.345.678.901.234.567.890" }, //$NON-NLS-2$ 2461cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%d", "-9876543210987654321098765432100000" }, //$NON-NLS-2$ 2462cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%10d", "-9876543210987654321098765432100000" }, //$NON-NLS-2$ 2463cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%-1d", "-9876543210987654321098765432100000" }, //$NON-NLS-2$ 2464cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%+d", "-9876543210987654321098765432100000" }, //$NON-NLS-2$ 2465cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "% d", "-9876543210987654321098765432100000" }, //$NON-NLS-2$ 2466cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%,d", "-9.876.543.210.987.654.321.098.765.432.100.000" }, //$NON-NLS-2$ 2467cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%(d", "(9876543210987654321098765432100000)" }, //$NON-NLS-2$ 2468cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%08d", "-9876543210987654321098765432100000" }, //$NON-NLS-2$ 2469cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%-+,(11d", "(9.876.543.210.987.654.321.098.765.432.100.000)" }, //$NON-NLS-2$ 2470cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%0 ,(11d", "(9.876.543.210.987.654.321.098.765.432.100.000)" }, //$NON-NLS-2$ 2471cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 2472cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2473cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 2474cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 2475cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 2476cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f; 2477cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < tripleD.length; i++) { 2478cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2479cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) tripleD[i][pattern], 2480cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath tripleD[i][input]); 2481cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleD[i][input] + ",pattern[" 2482cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleD[i][pattern], tripleD[i][output], f 2483cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toString()); 2484cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2485cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2486cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2487cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] tripleO = { 2488cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%o", "143564417755415637016711617605322" }, //$NON-NLS-2$ 2489cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%-6o", "143564417755415637016711617605322" }, //$NON-NLS-2$ 2490cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%08o", "143564417755415637016711617605322" }, //$NON-NLS-2$ 2491cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%#o", "0143564417755415637016711617605322" }, //$NON-NLS-2$ 2492cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%0#11o", "0143564417755415637016711617605322" }, //$NON-NLS-2$ 2493cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%-#9o", "0143564417755415637016711617605322" }, //$NON-NLS-2$ 2494cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%o", "-36336340043453651353467270113157312240" }, //$NON-NLS-2$ 2495cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%-6o", "-36336340043453651353467270113157312240" }, //$NON-NLS-2$ 2496cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%08o", "-36336340043453651353467270113157312240" }, //$NON-NLS-2$ 2497cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%#o", "-036336340043453651353467270113157312240" }, //$NON-NLS-2$ 2498cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%0#11o", "-036336340043453651353467270113157312240" }, //$NON-NLS-2$ 2499cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%-#9o", "-036336340043453651353467270113157312240" }, //$NON-NLS-2$ 2500cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 2501cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < tripleO.length; i++) { 2502cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.ITALY); 2503cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) tripleO[i][pattern], 2504cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath tripleO[i][input]); 2505cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleO[i][input] + ",pattern[" 2506cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleO[i][pattern], tripleO[i][output], f 2507cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toString()); 2508cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2509cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2510cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2511cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] tripleX = { 2512cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%x", "18ee90ff6c373e0ee4e3f0ad2" }, //$NON-NLS-2$ 2513cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%-8x", "18ee90ff6c373e0ee4e3f0ad2" }, //$NON-NLS-2$ 2514cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%06x", "18ee90ff6c373e0ee4e3f0ad2" }, //$NON-NLS-2$ 2515cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%#x", "0x18ee90ff6c373e0ee4e3f0ad2" }, //$NON-NLS-2$ 2516cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%0#12x", "0x18ee90ff6c373e0ee4e3f0ad2" }, //$NON-NLS-2$ 2517cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("123456789012345678901234567890"), "%-#9x", "0x18ee90ff6c373e0ee4e3f0ad2" }, //$NON-NLS-2$ 2518cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%x", "-1e6f380472bd4bae6eb8259bd94a0" }, //$NON-NLS-2$ 2519cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%-8x", "-1e6f380472bd4bae6eb8259bd94a0" }, //$NON-NLS-2$ 2520cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%06x", "-1e6f380472bd4bae6eb8259bd94a0" }, //$NON-NLS-2$ 2521cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%#x", "-0x1e6f380472bd4bae6eb8259bd94a0" }, //$NON-NLS-2$ 2522cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%0#12x", "-0x1e6f380472bd4bae6eb8259bd94a0" }, //$NON-NLS-2$ 2523cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigInteger("-9876543210987654321098765432100000"), "%-#9x", "-0x1e6f380472bd4bae6eb8259bd94a0" }, //$NON-NLS-2$ 2524cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 2525cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2526cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < tripleX.length; i++) { 2527cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.FRANCE); 2528cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) tripleX[i][pattern], 2529cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath tripleX[i][input]); 2530cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleX[i][input] + ",pattern[" 2531cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleX[i][pattern], tripleX[i][output], f 2532cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toString()); 2533cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2534cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2535cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2536cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2537cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%(+,-7d%<( o%<+(x %<( 06X", (BigInteger) null); 2538cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("null nullnull NULL", f.toString()); 2539cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2540cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2541cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 2542cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for padding of 2543cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * BigInteger conversion 2544cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 2545cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_BigIntegerPaddingConversion() { 2546cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 2547cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2548cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath BigInteger bigInt = new BigInteger("123456789012345678901234567890"); 2549cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2550cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%32d", bigInt); 2551cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" 123456789012345678901234567890", f.toString()); 2552cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2553cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2554cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%+32x", bigInt); 2555cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" +18ee90ff6c373e0ee4e3f0ad2", f.toString()); 2556cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2557cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2558cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("% 32o", bigInt); 2559cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" 143564417755415637016711617605322", f.toString()); 2560cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2561cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath BigInteger negBigInt = new BigInteger( 2562cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "-1234567890123456789012345678901234567890"); 2563cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2564cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%( 040X", negBigInt); 2565cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("(000003A0C92075C0DBF3B8ACBC5F96CE3F0AD2)", f.toString()); 2566cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2567cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2568cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%+(045d", negBigInt); 2569cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("(0001234567890123456789012345678901234567890)", f 2570cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toString()); 2571cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2572cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2573cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%+,-(60d", negBigInt); 2574cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals( 2575cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "(1.234.567.890.123.456.789.012.345.678.901.234.567.890) ", 2576cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.toString()); 2577cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2578cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2579cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 2580cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for BigInteger 2581cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion exception 2582cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 2583cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_BigIntegerConversionException() { 2584cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 2585cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2586cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final String[] flagsConversionMismatches = { "%#d", "%,o", "%,x", "%,X" }; 2587cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < flagsConversionMismatches.length; i++) { 2588cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2589cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.CHINA); 2590cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(flagsConversionMismatches[i], new BigInteger("1")); 2591cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FormatFlagsConversionMismatchException"); 2592cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatFlagsConversionMismatchException e) { 2593cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 2594cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2595cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2596cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2597cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final String[] missingFormatWidths = { "%-0d", "%0d", "%-d", "%-0o", 2598cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "%0o", "%-o", "%-0x", "%0x", "%-x", "%-0X", "%0X", "%-X" }; 2599cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < missingFormatWidths.length; i++) { 2600cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2601cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.KOREA); 2602cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(missingFormatWidths[i], new BigInteger("1")); 2603cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw MissingFormatWidthException"); 2604cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatWidthException e) { 2605cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 2606cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2607cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2608cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2609cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final String[] illFlags = { "%+ d", "%-08d", "%+ o", "%-08o", "%+ x", 2610cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "%-08x", "%+ X", "%-08X" }; 2611cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < illFlags.length; i++) { 2612cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2613cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.CANADA); 2614cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(illFlags[i], new BigInteger("1")); 2615cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatFlagsException"); 2616cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException e) { 2617cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 2618cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2619cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2620cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2621cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final String[] precisionExceptions = { "%.4d", "%2.5o", "%8.6x", 2622cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "%11.17X" }; 2623cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < precisionExceptions.length; i++) { 2624cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2625cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 2626cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(precisionExceptions[i], new BigInteger("1")); 2627cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatPrecisionException"); 2628cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatPrecisionException e) { 2629cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 2630cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2631cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2632cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2633cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 2634cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2635cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%D", new BigInteger("1")); 2636cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnknownFormatConversionException"); 2637cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnknownFormatConversionException e) { 2638cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 2639cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2640cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2641cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 2642cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2643cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%O", new BigInteger("1")); 2644cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnknownFormatConversionException"); 2645cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnknownFormatConversionException e) { 2646cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 2647cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2648cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2649cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2650cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 2651cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%010000000000000000000000000000000001d", new BigInteger( 2652cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "1")); 2653cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw MissingFormatWidthException"); 2654cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatWidthException e) { 2655cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 2656cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2657cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2658cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2659cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 2660cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for BigInteger 2661cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * exception throwing order 2662cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 2663cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_BigIntegerExceptionOrder() { 2664cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 2665cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath BigInteger big = new BigInteger("100"); 2666cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2667cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 2668cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Order summary: UnknownFormatConversionException > 2669cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * MissingFormatWidthException > IllegalFormatFlagsException > 2670cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * IllegalFormatPrecisionException > IllegalFormatConversionException > 2671cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * FormatFlagsConversionMismatchException 2672cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 2673cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 2674cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 2675cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2676cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%(o", false); 2677cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail(); 2678cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatFlagsConversionMismatchException expected) { 2679cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatConversionException expected) { 2680cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2681cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2682cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2683cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%.4o", false); 2684cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail(); 2685cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatPrecisionException expected) { 2686cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatConversionException expected) { 2687cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2688cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2689cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2690cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%+ .4o", big); 2691cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail(); 2692cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatPrecisionException expected) { 2693cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException expected) { 2694cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2695cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2696cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2697cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%+ -o", big); 2698cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail(); 2699cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatWidthException expected) { 2700cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException expected) { 2701cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2702cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2703cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 2704cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%-O", big); 2705cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail(); 2706cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatWidthException expected) { 2707cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnknownFormatConversionException expected) { 2708cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2709cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2710cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2711cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 2712cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for Float/Double 2713cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion type 'e' and 'E' 2714cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 2715cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_FloatConversionE() { 2716cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 2717cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] tripleE = { 2718cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%e", "0.000000e+00" }, 2719cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%#.0e", "0.e+00" }, 2720cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%#- (9.8e", " 0.00000000e+00" }, 2721cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%#+0(8.4e", "+0.0000e+00" }, 2722cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%-+(1.6e", "+0.000000e+00" }, 2723cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "% 0(12e", " 0.000000e+00" }, 2724cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2725cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 101f, "%e", "1.010000e+02" }, 2726cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 101f, "%#.0e", "1.e+02" }, 2727cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 101f, "%#- (9.8e", " 1.01000000e+02" }, 2728cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 101f, "%#+0(8.4e", "+1.0100e+02" }, 2729cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 101f, "%-+(1.6e", "+1.010000e+02" }, 2730cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 101f, "% 0(12e", " 1.010000e+02" }, 2731cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2732cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%e", "1.000000e+00" }, 2733cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%#.0e", "1.e+00" }, 2734cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%#- (9.8e", " 1.00000000e+00" }, 2735cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%#+0(8.4e", "+1.0000e+00" }, 2736cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%-+(1.6e", "+1.000000e+00" }, 2737cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "% 0(12e", " 1.000000e+00" }, 2738cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2739cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%e", "-9.800000e+01" }, 2740cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%#.0e", "-1.e+02" }, 2741cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%#- (9.8e", "(9.80000000e+01)" }, 2742cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%#+0(8.4e", "(9.8000e+01)" }, 2743cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%-+(1.6e", "(9.800000e+01)" }, 2744cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "% 0(12e", "(9.800000e+01)" }, 2745cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2746cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.23f, "%e", "1.230000e+00" }, 2747cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.23f, "%#.0e", "1.e+00" }, 2748cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.23f, "%#- (9.8e", " 1.23000002e+00" }, 2749cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.23f, "%#+0(8.4e", "+1.2300e+00" }, 2750cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.23f, "%-+(1.6e", "+1.230000e+00" }, 2751cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.23f, "% 0(12e", " 1.230000e+00" }, 2752cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2753cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 34.1234567f, "%e", "3.412346e+01" }, 2754cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 34.1234567f, "%#.0e", "3.e+01" }, 2755cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 34.1234567f, "%#- (9.8e", " 3.41234550e+01" }, 2756cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 34.1234567f, "%#+0(8.4e", "+3.4123e+01" }, 2757cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 34.1234567f, "%-+(1.6e", "+3.412346e+01" }, 2758cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 34.1234567f, "% 0(12e", " 3.412346e+01" }, 2759cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2760cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.12345f, "%e", "-1.234500e-01" }, 2761cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.12345f, "%#.0e", "-1.e-01" }, 2762cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.12345f, "%#- (9.8e", "(1.23450004e-01)" }, 2763cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.12345f, "%#+0(8.4e", "(1.2345e-01)" }, 2764cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.12345f, "%-+(1.6e", "(1.234500e-01)" }, 2765cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.12345f, "% 0(12e", "(1.234500e-01)" }, 2766cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2767cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -9876.1234567f, "%e", "-9.876123e+03" }, 2768cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -9876.1234567f, "%#.0e", "-1.e+04" }, 2769cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -9876.1234567f, "%#- (9.8e", "(9.87612305e+03)" }, 2770cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -9876.1234567f, "%#+0(8.4e", "(9.8761e+03)" }, 2771cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -9876.1234567f, "%-+(1.6e", "(9.876123e+03)" }, 2772cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -9876.1234567f, "% 0(12e", "(9.876123e+03)" }, 2773cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2774cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%e", "3.402823e+38" }, 2775cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%#.0e", "3.e+38" }, 2776cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%#- (9.8e", " 3.40282347e+38" }, 2777cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%#+0(8.4e", "+3.4028e+38" }, 2778cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%-+(1.6e", "+3.402823e+38" }, 2779cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "% 0(12e", " 3.402823e+38" }, 2780cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2781cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%e", "1.401298e-45" }, 2782cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%#.0e", "1.e-45" }, 2783cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%#- (9.8e", " 1.40129846e-45" }, 2784cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%#+0(8.4e", "+1.4013e-45" }, 2785cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%-+(1.6e", "+1.401298e-45" }, 2786cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "% 0(12e", " 1.401298e-45" }, 2787cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2788cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%e", "NaN" }, 2789cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%#.0e", "NaN" }, 2790cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%#- (9.8e", "NaN " }, 2791cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%#+0(8.4e", " NaN" }, 2792cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%-+(1.6e", "NaN" }, 2793cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "% 0(12e", " NaN" }, 2794cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2795cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2796cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%e", "-Infinity" }, 2797cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%#.0e", "-Infinity" }, 2798cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%#- (9.8e", "(Infinity)" }, 2799cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%#+0(8.4e", "(Infinity)" }, 2800cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%-+(1.6e", "(Infinity)" }, 2801cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "% 0(12e", " (Infinity)" }, 2802cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2803cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%e", "-Infinity" }, 2804cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%#.0e", "-Infinity" }, 2805cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%#- (9.8e", "(Infinity)" }, 2806cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%#+0(8.4e", "(Infinity)" }, 2807cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%-+(1.6e", "(Infinity)" }, 2808cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "% 0(12e", " (Infinity)" }, 2809cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2810cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%e", "0.000000e+00" }, 2811cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%#.0e", "0.e+00" }, 2812cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%#- (9.8e", " 0.00000000e+00" }, 2813cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%#+0(8.4e", "+0.0000e+00" }, 2814cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%-+(1.6e", "+0.000000e+00" }, 2815cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "% 0(12e", " 0.000000e+00" }, 2816cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2817cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%e", "1.000000e+00" }, 2818cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%#.0e", "1.e+00" }, 2819cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%#- (9.8e", " 1.00000000e+00" }, 2820cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%#+0(8.4e", "+1.0000e+00" }, 2821cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%-+(1.6e", "+1.000000e+00" }, 2822cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "% 0(12e", " 1.000000e+00" }, 2823cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2824cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%e", "-1.000000e+00" }, 2825cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%#.0e", "-1.e+00" }, 2826cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%#- (9.8e", "(1.00000000e+00)" }, 2827cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%#+0(8.4e", "(1.0000e+00)" }, 2828cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%-+(1.6e", "(1.000000e+00)" }, 2829cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "% 0(12e", "(1.000000e+00)" }, 2830cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2831cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2832cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%e", "1.000000e-08" }, 2833cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%#.0e", "1.e-08" }, 2834cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%#- (9.8e", " 1.00000000e-08" }, 2835cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%#+0(8.4e", "+1.0000e-08" }, 2836cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%-+(1.6e", "+1.000000e-08" }, 2837cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "% 0(12e", " 1.000000e-08" }, 2838cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2839cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 9122.10d, "%e", "9.122100e+03" }, 2840cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 9122.10d, "%#.0e", "9.e+03" }, 2841cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 9122.10d, "%#- (9.8e", " 9.12210000e+03" }, 2842cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 9122.10d, "%#+0(8.4e", "+9.1221e+03" }, 2843cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 9122.10d, "%-+(1.6e", "+9.122100e+03" }, 2844cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 9122.10d, "% 0(12e", " 9.122100e+03" }, 2845cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2846cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%e", "1.000000e-01" }, 2847cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%#.0e", "1.e-01" }, 2848cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%#- (9.8e", " 1.00000000e-01" }, 2849cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%#+0(8.4e", "+1.0000e-01" }, 2850cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%-+(1.6e", "+1.000000e-01" }, 2851cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "% 0(12e", " 1.000000e-01" }, 2852cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2853cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%e", "-2.000000e+00" }, 2854cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%#.0e", "-2.e+00" }, 2855cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%#- (9.8e", "(2.00000000e+00)" }, 2856cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%#+0(8.4e", "(2.0000e+00)" }, 2857cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%-+(1.6e", "(2.000000e+00)" }, 2858cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "% 0(12e", "(2.000000e+00)" }, 2859cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2860cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.39d, "%e", "-3.900000e-01" }, 2861cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.39d, "%#.0e", "-4.e-01" }, 2862cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.39d, "%#- (9.8e", "(3.90000000e-01)" }, 2863cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.39d, "%#+0(8.4e", "(3.9000e-01)" }, 2864cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.39d, "%-+(1.6e", "(3.900000e-01)" }, 2865cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.39d, "% 0(12e", "(3.900000e-01)" }, 2866cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2867cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%e", "-1.234568e+09" }, 2868cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%#.0e", "-1.e+09" }, 2869cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%#- (9.8e", "(1.23456789e+09)" }, 2870cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%#+0(8.4e", "(1.2346e+09)" }, 2871cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%-+(1.6e", "(1.234568e+09)" }, 2872cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "% 0(12e", "(1.234568e+09)" }, 2873cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2874cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%e", "1.797693e+308" }, 2875cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%#.0e", "2.e+308" }, 2876cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%#- (9.8e", " 1.79769313e+308" }, 2877cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%#+0(8.4e", "+1.7977e+308" }, 2878cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%-+(1.6e", "+1.797693e+308" }, 2879cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "% 0(12e", " 1.797693e+308" }, 2880cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2881cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%e", "4.900000e-324" }, 2882cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%#.0e", "5.e-324" }, 2883cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%#- (9.8e", " 4.90000000e-324" }, 2884cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%#+0(8.4e", "+4.9000e-324" }, 2885cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%-+(1.6e", "+4.900000e-324" }, 2886cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "% 0(12e", " 4.900000e-324" }, 2887cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2888cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%e", "NaN" }, 2889cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%#.0e", "NaN" }, 2890cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%#- (9.8e", "NaN " }, 2891cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%#+0(8.4e", " NaN" }, 2892cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%-+(1.6e", "NaN" }, 2893cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "% 0(12e", " NaN" }, 2894cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2895cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%e", "-Infinity" }, 2896cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%#.0e", "-Infinity" }, 2897cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%#- (9.8e", "(Infinity)" }, 2898cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%#+0(8.4e", "(Infinity)" }, 2899cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%-+(1.6e", "(Infinity)" }, 2900cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "% 0(12e", " (Infinity)" }, 2901cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2902cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%e", "Infinity" }, 2903cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%#.0e", "Infinity" }, 2904cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%#- (9.8e", " Infinity" }, 2905cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%#+0(8.4e", "+Infinity" }, 2906cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%-+(1.6e", "+Infinity" }, 2907cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "% 0(12e", " Infinity" }, 2908cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 2909cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 2910cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 2911cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 2912cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < tripleE.length; i++) { 2913cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 2914cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) tripleE[i][pattern], tripleE[i][input]); 2915cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleE[i][input] + ",pattern[" 2916cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleE[i][pattern], 2917cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath tripleE[i][output], f.toString()); 2918cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2919cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for conversion type 'E' 2920cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 2921cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(((String) tripleE[i][pattern]).toUpperCase(), tripleE[i][input]); 2922cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleE[i][input] + ",pattern[" 2923cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleE[i][pattern], ((String) tripleE[i][output]) 2924cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.UK), f.toString()); 2925cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2926cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2927cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 2928cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%e", 1001f); 2929cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 2930cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * fail on RI, spec says 'e' requires the output to be formatted in 2931cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * general scientific notation and the localization algorithm is 2932cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * applied. But RI format this case to 1.001000e+03, which does not 2933cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conform to the German Locale 2934cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 2935cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1,001000e+03", f.toString()); 2936cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 2937cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2938cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 2939cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for Float/Double 2940cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion type 'g' and 'G' 2941cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 2942cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_FloatConversionG() { 2943cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 2944cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] tripleG = { 2945cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1001f, "%g", "1001.00" }, 2946cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1001f, "%- (,9.8g", " 1,001.0000" }, 2947cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1001f, "%+0(,8.4g", "+001,001" }, 2948cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1001f, "%-+(,1.6g", "+1,001.00" }, 2949cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1001f, "% 0(,12.0g", " 0000001e+03" }, 2950cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2951cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%g", "1.00000" }, 2952cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%- (,9.8g", " 1.0000000" }, 2953cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%+0(,8.4g", "+001.000" }, 2954cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%-+(,1.6g", "+1.00000" }, 2955cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "% 0(,12.0g", " 00000000001" }, 2956cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2957cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%g", "-98.0000" }, 2958cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%- (,9.8g", "(98.000000)" }, 2959cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%+0(,8.4g", "(098.00)" }, 2960cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%-+(,1.6g", "(98.0000)" }, 2961cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "% 0(,12.0g", "(000001e+02)" }, 2962cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2963cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.000001f, "%g", "1.00000e-06" }, 2964cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.000001f, "%- (,9.8g", " 1.0000000e-06" }, 2965cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.000001f, "%+0(,8.4g", "+1.000e-06" }, 2966cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.000001f, "%-+(,1.6g", "+1.00000e-06" }, 2967cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.000001f, "% 0(,12.0g", " 0000001e-06" }, 2968cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2969cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "%g", "345.123" }, 2970cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "%- (,9.8g", " 345.12344" }, 2971cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "%+0(,8.4g", "+00345.1" }, 2972cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "%-+(,1.6g", "+345.123" }, 2973cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "% 0(,12.0g", " 0000003e+02" }, 2974cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2975cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00000012345f, "%g", "-1.23450e-07" }, 2976cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00000012345f, "%- (,9.8g", "(1.2344999e-07)" }, 2977cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00000012345f, "%+0(,8.4g", "(1.234e-07)" }, 2978cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00000012345f, "%-+(,1.6g", "(1.23450e-07)" }, 2979cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00000012345f, "% 0(,12.0g", "(000001e-07)" }, 2980cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2981cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987.1234567f, "%g", "-987.123" }, 2982cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987.1234567f, "%- (,9.8g", "(987.12347)" }, 2983cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987.1234567f, "%+0(,8.4g", "(0987.1)" }, 2984cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987.1234567f, "%-+(,1.6g", "(987.123)" }, 2985cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987.1234567f, "% 0(,12.0g", "(000001e+03)" }, 2986cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2987cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%g", "3.40282e+38" }, 2988cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%- (,9.8g", " 3.4028235e+38" }, 2989cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%+0(,8.4g", "+3.403e+38" }, 2990cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%-+(,1.6g", "+3.40282e+38" }, 2991cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "% 0(,12.0g", " 0000003e+38" }, 2992cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2993cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%g", "1.40130e-45" }, 2994cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%- (,9.8g", " 1.4012985e-45" }, 2995cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%+0(,8.4g", "+1.401e-45" }, 2996cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%-+(,1.6g", "+1.40130e-45" }, 2997cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "% 0(,12.0g", " 0000001e-45" }, 2998cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 2999cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%g", "NaN" }, 3000cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%- (,9.8g", "NaN " }, 3001cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%+0(,8.4g", " NaN" }, 3002cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%-+(,1.6g", "NaN" }, 3003cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "% 0(,12.0g", " NaN" }, 3004cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3005cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%g", "-Infinity" }, 3006cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%- (,9.8g", "(Infinity)" }, 3007cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%+0(,8.4g", "(Infinity)" }, 3008cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%-+(,1.6g", "(Infinity)" }, 3009cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "% 0(,12.0g", " (Infinity)" }, 3010cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3011cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%g", "Infinity" }, 3012cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%- (,9.8g", " Infinity" }, 3013cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%+0(,8.4g", "+Infinity" }, 3014cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%-+(,1.6g", "+Infinity" }, 3015cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "% 0(,12.0g", " Infinity" }, 3016cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3017cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%g", "1.00000" }, 3018cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%- (,9.8g", " 1.0000000" }, 3019cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%+0(,8.4g", "+001.000" }, 3020cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%-+(,1.6g", "+1.00000" }, 3021cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "% 0(,12.0g", " 00000000001" }, 3022cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3023cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%g", "-1.00000" }, 3024cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%- (,9.8g", "(1.0000000)" }, 3025cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%+0(,8.4g", "(01.000)" }, 3026cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%-+(,1.6g", "(1.00000)" }, 3027cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "% 0(,12.0g", "(0000000001)" }, 3028cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3029cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%g", "1.00000e-08" }, 3030cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%- (,9.8g", " 1.0000000e-08" }, 3031cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%+0(,8.4g", "+1.000e-08" }, 3032cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%-+(,1.6g", "+1.00000e-08" }, 3033cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "% 0(,12.0g", " 0000001e-08" }, 3034cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3035cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1912.10d, "%g", "1912.10" }, 3036cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1912.10d, "%- (,9.8g", " 1,912.1000" }, 3037cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1912.10d, "%+0(,8.4g", "+001,912" }, 3038cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1912.10d, "%-+(,1.6g", "+1,912.10" }, 3039cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1912.10d, "% 0(,12.0g", " 0000002e+03" }, 3040cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3041cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%g", "0.100000" }, 3042cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%- (,9.8g", " 0.10000000" }, 3043cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%+0(,8.4g", "+00.1000" }, 3044cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%-+(,1.6g", "+0.100000" }, 3045cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "% 0(,12.0g", " 000000000.1" }, 3046cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3047cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%g", "-2.00000" }, 3048cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%- (,9.8g", "(2.0000000)" }, 3049cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%+0(,8.4g", "(02.000)" }, 3050cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%-+(,1.6g", "(2.00000)" }, 3051cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "% 0(,12.0g", "(0000000002)" }, 3052cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3053cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00039d, "%g", "-0.000390000" }, 3054cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00039d, "%- (,9.8g", "(0.00039000000)" }, 3055cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00039d, "%+0(,8.4g", "(0.0003900)" }, 3056cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00039d, "%-+(,1.6g", "(0.000390000)" }, 3057cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00039d, "% 0(,12.0g", "(00000.0004)" }, 3058cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3059cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%g", "-1.23457e+09" }, 3060cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%- (,9.8g", "(1.2345679e+09)" }, 3061cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%+0(,8.4g", "(1.235e+09)" }, 3062cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%-+(,1.6g", "(1.23457e+09)" }, 3063cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "% 0(,12.0g", "(000001e+09)" }, 3064cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3065cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%g", "1.79769e+308" }, 3066cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%- (,9.8g", " 1.7976931e+308" }, 3067cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%+0(,8.4g", "+1.798e+308" }, 3068cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%-+(,1.6g", "+1.79769e+308" }, 3069cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "% 0(,12.0g", " 000002e+308" }, 3070cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3071cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%g", "4.90000e-324" }, 3072cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%- (,9.8g", " 4.9000000e-324" }, 3073cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%+0(,8.4g", "+4.900e-324" }, 3074cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%-+(,1.6g", "+4.90000e-324" }, 3075cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "% 0(,12.0g", " 000005e-324" }, 3076cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3077cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%g", "NaN" }, 3078cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%- (,9.8g", "NaN " }, 3079cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%+0(,8.4g", " NaN" }, 3080cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%-+(,1.6g", "NaN" }, 3081cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "% 0(,12.0g", " NaN" }, 3082cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3083cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%g", "-Infinity" }, 3084cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%- (,9.8g", "(Infinity)" }, 3085cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%+0(,8.4g", "(Infinity)" }, 3086cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%-+(,1.6g", "(Infinity)" }, 3087cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "% 0(,12.0g", " (Infinity)" }, 3088cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3089cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%g", "Infinity" }, 3090cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%- (,9.8g", " Infinity" }, 3091cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%+0(,8.4g", "+Infinity" }, 3092cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%-+(,1.6g", "+Infinity" }, 3093cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "% 0(,12.0g", " Infinity" }, 3094cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3095cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 3096cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 3097cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 3098cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 3099cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < tripleG.length; i++) { 3100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) tripleG[i][pattern], tripleG[i][input]); 3103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleG[i][input] + ",pattern[" 3104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleG[i][pattern], 3105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath tripleG[i][output], f.toString()); 3106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for conversion type 'G' 3108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(((String) tripleG[i][pattern]).toUpperCase(), tripleG[i][input]); 3110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleG[i][input] + ",pattern[" 3111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleG[i][pattern], ((String) tripleG[i][output]) 3112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.UK), f.toString()); 3113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%.5g", 0f); 3117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("0.0000", f.toString()); 3118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%.0g", 0f); 3121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 3122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * fail on RI, spec says if the precision is 0, then it is taken to be 3123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 1. but RI throws ArrayIndexOutOfBoundsException. 3124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 3125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("0", f.toString()); 3126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 3128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%g", 1001f); 3129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 3130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * fail on RI, spec says 'g' requires the output to be formatted in 3131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * general scientific notation and the localization algorithm is 3132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * applied. But RI format this case to 1001.00, which does not conform 3133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * to the German Locale 3134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 3135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1001,00", f.toString()); 3136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 3139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for Float/Double 3140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion type 'g' and 'G' overflow 3141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 3142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_FloatConversionG_Overflow() { 3143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(); 3144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%g", 999999.5); 3145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1.00000e+06", f.toString()); 3146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 3148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%g", 99999.5); 3149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("99999.5", f.toString()); 3150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 3152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%.4g", 99.95); 3153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("99.95", f.toString()); 3154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 3156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%g", 99.95); 3157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("99.9500", f.toString()); 3158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 3160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%g", 0.9); 3161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("0.900000", f.toString()); 3162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 3164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%.0g", 0.000095); 3165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("0.0001", f.toString()); 3166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 3168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%g", 0.0999999); 3169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("0.0999999", f.toString()); 3170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(); 3172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%g", 0.00009); 3173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("9.00000e-05", f.toString()); 3174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 3177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for Float/Double 3178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion type 'f' 3179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 3180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_FloatConversionF() { 3181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 3182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] tripleF = { 3184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%f", "0,000000" }, 3185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%#.3f", "0,000" }, 3186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%,5f", "0,000000" }, 3187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%- (12.0f", " 0 " }, 3188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%#+0(1.6f", "+0,000000" }, 3189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%-+(8.4f", "+0,0000 " }, 3190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "% 0#(9.8f", " 0,00000000" }, 3191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1234f, "%f", "1234,000000" }, 3193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1234f, "%#.3f", "1234,000" }, 3194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1234f, "%,5f", "1.234,000000" }, 3195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1234f, "%- (12.0f", " 1234 " }, 3196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1234f, "%#+0(1.6f", "+1234,000000" }, 3197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1234f, "%-+(8.4f", "+1234,0000" }, 3198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1234f, "% 0#(9.8f", " 1234,00000000" }, 3199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%f", "1,000000" }, 3201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%#.3f", "1,000" }, 3202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%,5f", "1,000000" }, 3203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%- (12.0f", " 1 " }, 3204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%#+0(1.6f", "+1,000000" }, 3205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%-+(8.4f", "+1,0000 " }, 3206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "% 0#(9.8f", " 1,00000000" }, 3207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%f", "-98,000000" }, 3209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%#.3f", "-98,000" }, 3210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%,5f", "-98,000000" }, 3211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%- (12.0f", "(98) " }, 3212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%#+0(1.6f", "(98,000000)" }, 3213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%-+(8.4f", "(98,0000)" }, 3214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "% 0#(9.8f", "(98,00000000)" }, 3215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.000001f, "%f", "0,000001" }, 3217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.000001f, "%#.3f", "0,000" }, 3218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.000001f, "%,5f", "0,000001" }, 3219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.000001f, "%- (12.0f", " 0 " }, 3220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.000001f, "%#+0(1.6f", "+0,000001" }, 3221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.000001f, "%-+(8.4f", "+0,0000 " }, 3222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.000001f, "% 0#(9.8f", " 0,00000100" }, 3223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "%f", "345,123444" }, 3225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "%#.3f", "345,123" }, 3226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "%,5f", "345,123444" }, 3227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "%- (12.0f", " 345 " }, 3228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "%#+0(1.6f", "+345,123444" }, 3229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "%-+(8.4f", "+345,1234" }, 3230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "% 0#(9.8f", " 345,12344360" }, 3231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00000012345f, "%f", "-0,000000" }, 3233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00000012345f, "%#.3f", "-0,000" }, 3234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00000012345f, "%,5f", "-0,000000" }, 3235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00000012345f, "%- (12.0f", "(0) " }, 3236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00000012345f, "%#+0(1.6f", "(0,000000)" }, 3237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00000012345f, "%-+(8.4f", "(0,0000)" }, 3238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00000012345f, "% 0#(9.8f", "(0,00000012)" }, 3239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987654321.1234567f, "%f", "-987654336,000000" }, 3241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987654321.1234567f, "%#.3f", "-987654336,000" }, 3242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987654321.1234567f, "%,5f", "-987.654.336,000000" }, 3243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987654321.1234567f, "%- (12.0f", "(987654336) " }, 3244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987654321.1234567f, "%#+0(1.6f", "(987654336,000000)" }, 3245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987654321.1234567f, "%-+(8.4f", "(987654336,0000)" }, 3246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987654321.1234567f, "% 0#(9.8f", "(987654336,00000000)" }, 3247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%f", "340282346638528860000000000000000000000,000000" }, 3249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%#.3f", "340282346638528860000000000000000000000,000" }, 3250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%,5f", "340.282.346.638.528.860.000.000.000.000.000.000.000,000000" }, 3251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%- (12.0f", " 340282346638528860000000000000000000000" }, 3252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%#+0(1.6f", "+340282346638528860000000000000000000000,000000" }, 3253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%-+(8.4f", "+340282346638528860000000000000000000000,0000" }, 3254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "% 0#(9.8f", " 340282346638528860000000000000000000000,00000000" }, 3255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%f", "0,000000" }, 3257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%#.3f", "0,000" }, 3258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%,5f", "0,000000" }, 3259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%- (12.0f", " 0 " }, 3260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%#+0(1.6f", "+0,000000" }, 3261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "%-+(8.4f", "+0,0000 " }, 3262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MIN_VALUE, "% 0#(9.8f", " 0,00000000" }, 3263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%f", "NaN" }, 3265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%#.3f", "NaN" }, 3266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%,5f", " NaN" }, 3267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%- (12.0f", "NaN " }, 3268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%#+0(1.6f", "NaN" }, 3269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%-+(8.4f", "NaN " }, 3270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "% 0#(9.8f", " NaN" }, 3271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%f", "-Infinity" }, 3273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%#.3f", "-Infinity" }, 3274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%,5f", "-Infinity" }, 3275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%- (12.0f", "(Infinity) " }, 3276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%#+0(1.6f", "(Infinity)" }, 3277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%-+(8.4f", "(Infinity)" }, 3278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "% 0#(9.8f", "(Infinity)" }, 3279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%f", "Infinity" }, 3281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%#.3f", "Infinity" }, 3282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%,5f", "Infinity" }, 3283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%- (12.0f", " Infinity " }, 3284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%#+0(1.6f", "+Infinity" }, 3285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%-+(8.4f", "+Infinity" }, 3286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "% 0#(9.8f", " Infinity" }, 3287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%f", "0,000000" }, 3290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%#.3f", "0,000" }, 3291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%,5f", "0,000000" }, 3292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%- (12.0f", " 0 " }, 3293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%#+0(1.6f", "+0,000000" }, 3294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%-+(8.4f", "+0,0000 " }, 3295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "% 0#(9.8f", " 0,00000000" }, 3296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%f", "1,000000" }, 3298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%#.3f", "1,000" }, 3299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%,5f", "1,000000" }, 3300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%- (12.0f", " 1 " }, 3301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%#+0(1.6f", "+1,000000" }, 3302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%-+(8.4f", "+1,0000 " }, 3303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "% 0#(9.8f", " 1,00000000" }, 3304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%f", "-1,000000" }, 3306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%#.3f", "-1,000" }, 3307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%,5f", "-1,000000" }, 3308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%- (12.0f", "(1) " }, 3309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%#+0(1.6f", "(1,000000)" }, 3310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%-+(8.4f", "(1,0000)" }, 3311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "% 0#(9.8f", "(1,00000000)" }, 3312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%f", "0,000000" }, 3314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%#.3f", "0,000" }, 3315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%,5f", "0,000000" }, 3316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%- (12.0f", " 0 " }, 3317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%#+0(1.6f", "+0,000000" }, 3318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%-+(8.4f", "+0,0000 " }, 3319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "% 0#(9.8f", " 0,00000001" }, 3320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1000.10d, "%f", "1000,100000" }, 3322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1000.10d, "%#.3f", "1000,100" }, 3323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1000.10d, "%,5f", "1.000,100000" }, 3324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1000.10d, "%- (12.0f", " 1000 " }, 3325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1000.10d, "%#+0(1.6f", "+1000,100000" }, 3326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1000.10d, "%-+(8.4f", "+1000,1000" }, 3327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1000.10d, "% 0#(9.8f", " 1000,10000000" }, 3328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%f", "0,100000" }, 3330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%#.3f", "0,100" }, 3331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%,5f", "0,100000" }, 3332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%- (12.0f", " 0 " }, 3333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%#+0(1.6f", "+0,100000" }, 3334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%-+(8.4f", "+0,1000 " }, 3335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "% 0#(9.8f", " 0,10000000" }, 3336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%f", "-2,000000" }, 3338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%#.3f", "-2,000" }, 3339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%,5f", "-2,000000" }, 3340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%- (12.0f", "(2) " }, 3341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%#+0(1.6f", "(2,000000)" }, 3342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%-+(8.4f", "(2,0000)" }, 3343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "% 0#(9.8f", "(2,00000000)" }, 3344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00009d, "%f", "-0,000090" }, 3346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00009d, "%#.3f", "-0,000" }, 3347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00009d, "%,5f", "-0,000090" }, 3348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00009d, "%- (12.0f", "(0) " }, 3349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00009d, "%#+0(1.6f", "(0,000090)" }, 3350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00009d, "%-+(8.4f", "(0,0001)" }, 3351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00009d, "% 0#(9.8f", "(0,00009000)" }, 3352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%f", "-1234567890,012346" }, 3354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%#.3f", "-1234567890,012" }, 3355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%,5f", "-1.234.567.890,012346" }, 3356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%- (12.0f", "(1234567890)" }, 3357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%#+0(1.6f", "(1234567890,012346)" }, 3358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%-+(8.4f", "(1234567890,0123)" }, 3359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "% 0#(9.8f", "(1234567890,01234580)" }, 3360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%f", "179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,000000" }, 3362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%#.3f", "179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,000" }, 3363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%,5f", "179.769.313.486.231.570.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000,000000" }, 3364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%- (12.0f", " 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, 3365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%#+0(1.6f", "+179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,000000" }, 3366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%-+(8.4f", "+179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,0000" }, 3367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "% 0#(9.8f", " 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,00000000" }, 3368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%f", "0,000000" }, 3370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%#.3f", "0,000" }, 3371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%,5f", "0,000000" }, 3372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%- (12.0f", " 0 " }, 3373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%#+0(1.6f", "+0,000000" }, 3374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%-+(8.4f", "+0,0000 " }, 3375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "% 0#(9.8f", " 0,00000000" }, 3376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%f", "NaN" }, 3378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%#.3f", "NaN" }, 3379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%,5f", " NaN" }, 3380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%- (12.0f", "NaN " }, 3381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%#+0(1.6f", "NaN" }, 3382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%-+(8.4f", "NaN " }, 3383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "% 0#(9.8f", " NaN" }, 3384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%f", "Infinity" }, 3386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%#.3f", "Infinity" }, 3387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%,5f", "Infinity" }, 3388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%- (12.0f", " Infinity " }, 3389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%#+0(1.6f", "+Infinity" }, 3390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%-+(8.4f", "+Infinity" }, 3391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "% 0#(9.8f", " Infinity" }, 3392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%f", "-Infinity" }, 3394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%#.3f", "-Infinity" }, 3395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%,5f", "-Infinity" }, 3396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%- (12.0f", "(Infinity) " }, 3397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%#+0(1.6f", "(Infinity)" }, 3398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%-+(8.4f", "(Infinity)" }, 3399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "% 0#(9.8f", "(Infinity)" }, 3400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 3401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 3402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 3403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 3404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < tripleF.length; i++) { 3405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 3406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) tripleF[i][pattern], tripleF[i][input]); 3407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleF[i][input] + ",pattern[" 3408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleF[i][pattern], 3409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath tripleF[i][output], f.toString()); 3410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 3414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for Float/Double 3415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion type 'a' and 'A' 3416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 3417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_FloatConversionA() { 3418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 3419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] tripleA = { 3420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -0f, "%a", "-0x0.0p0" }, 3421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -0f, "%#.3a", "-0x0.000p0" }, 3422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -0f, "%5a", "-0x0.0p0" }, 3423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -0f, "%- 12.0a", "-0x0.0p0 " }, 3424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -0f, "%#+01.6a", "-0x0.000000p0" }, 3425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -0f, "%-+8.4a", "-0x0.0000p0" }, 3426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%a", "0x0.0p0" }, 3428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%#.3a", "0x0.000p0" }, 3429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%5a", "0x0.0p0" }, 3430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%- 12.0a", " 0x0.0p0 " }, 3431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%#+01.6a", "+0x0.000000p0" }, 3432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0f, "%-+8.4a", "+0x0.0000p0" }, 3433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1234f, "%a", "0x1.348p10" }, 3435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1234f, "%#.3a", "0x1.348p10" }, 3436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1234f, "%5a", "0x1.348p10" }, 3437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1234f, "%- 12.0a", " 0x1.3p10 " }, 3438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1234f, "%#+01.6a", "+0x1.348000p10" }, 3439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1234f, "%-+8.4a", "+0x1.3480p10" }, 3440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%a", "0x1.0p0" }, 3442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%#.3a", "0x1.000p0" }, 3443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%5a", "0x1.0p0" }, 3444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%- 12.0a", " 0x1.0p0 " }, 3445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%#+01.6a", "+0x1.000000p0" }, 3446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1.f, "%-+8.4a", "+0x1.0000p0" }, 3447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%a", "-0x1.88p6" }, 3449cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%#.3a", "-0x1.880p6" }, 3450cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%5a", "-0x1.88p6" }, 3451cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%- 12.0a", "-0x1.8p6 " }, 3452cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%#+01.6a", "-0x1.880000p6" }, 3453cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -98f, "%-+8.4a", "-0x1.8800p6" }, 3454cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3455cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "%a", "0x1.591f9ap8" }, 3456cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "%5a", "0x1.591f9ap8" }, 3457cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 345.1234567f, "%#+01.6a", "+0x1.591f9ap8" }, 3458cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3459cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987654321.1234567f, "%a", "-0x1.d6f346p29" }, 3460cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987654321.1234567f, "%#.3a", "-0x1.d6fp29" }, 3461cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987654321.1234567f, "%5a", "-0x1.d6f346p29" }, 3462cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987654321.1234567f, "%- 12.0a", "-0x1.dp29 " }, 3463cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987654321.1234567f, "%#+01.6a", "-0x1.d6f346p29" }, 3464cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -987654321.1234567f, "%-+8.4a", "-0x1.d6f3p29" }, 3465cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3466cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%a", "0x1.fffffep127" }, 3467cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%5a", "0x1.fffffep127" }, 3468cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.MAX_VALUE, "%#+01.6a", "+0x1.fffffep127" }, 3469cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3470cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%a", "NaN" }, 3471cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%#.3a", "NaN" }, 3472cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%5a", " NaN" }, 3473cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%- 12.0a", "NaN " }, 3474cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%#+01.6a", "NaN" }, 3475cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NaN, "%-+8.4a", "NaN " }, 3476cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3477cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%a", "-Infinity" }, 3478cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%#.3a", "-Infinity" }, 3479cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%5a", "-Infinity" }, 3480cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%- 12.0a", "-Infinity " }, 3481cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%#+01.6a", "-Infinity" }, 3482cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.NEGATIVE_INFINITY, "%-+8.4a", "-Infinity" }, 3483cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3484cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%a", "Infinity" }, 3485cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%#.3a", "Infinity" }, 3486cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%5a", "Infinity" }, 3487cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%- 12.0a", " Infinity " }, 3488cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%#+01.6a", "+Infinity" }, 3489cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Float.POSITIVE_INFINITY, "%-+8.4a", "+Infinity" }, 3490cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3491cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -0d, "%a", "-0x0.0p0" }, 3492cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -0d, "%#.3a", "-0x0.000p0" }, 3493cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -0d, "%5a", "-0x0.0p0" }, 3494cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -0d, "%- 12.0a", "-0x0.0p0 " }, 3495cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -0d, "%#+01.6a", "-0x0.000000p0" }, 3496cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -0d, "%-+8.4a", "-0x0.0000p0" }, 3497cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3498cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%a", "0x0.0p0" }, 3499cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%#.3a", "0x0.000p0" }, 3500cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%5a", "0x0.0p0" }, 3501cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%- 12.0a", " 0x0.0p0 " }, 3502cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%#+01.6a", "+0x0.000000p0" }, 3503cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0d, "%-+8.4a", "+0x0.0000p0" }, 3504cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3505cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%a", "0x1.0p0" }, 3506cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%#.3a", "0x1.000p0" }, 3507cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%5a", "0x1.0p0" }, 3508cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%- 12.0a", " 0x1.0p0 " }, 3509cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%#+01.6a", "+0x1.000000p0" }, 3510cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1d, "%-+8.4a", "+0x1.0000p0" }, 3511cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3512cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%a", "-0x1.0p0" }, 3513cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%#.3a", "-0x1.000p0" }, 3514cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%5a", "-0x1.0p0" }, 3515cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%- 12.0a", "-0x1.0p0 " }, 3516cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%#+01.6a", "-0x1.000000p0" }, 3517cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1d, "%-+8.4a", "-0x1.0000p0" }, 3518cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3519cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%a", "0x1.5798ee2308c3ap-27" }, 3520cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%5a", "0x1.5798ee2308c3ap-27" }, 3521cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%- 12.0a", " 0x1.5p-27 " }, 3522cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { .00000001d, "%#+01.6a", "+0x1.5798eep-27" }, 3523cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3524cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1000.10d, "%a", "0x1.f40cccccccccdp9" }, 3525cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1000.10d, "%5a", "0x1.f40cccccccccdp9" }, 3526cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 1000.10d, "%- 12.0a", " 0x1.fp9 " }, 3527cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3528cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%a", "0x1.999999999999ap-4" }, 3529cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { 0.1d, "%5a", "0x1.999999999999ap-4" }, 3530cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3531cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%a", "-0x1.0p1" }, 3532cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%#.3a", "-0x1.000p1" }, 3533cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%5a", "-0x1.0p1" }, 3534cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%- 12.0a", "-0x1.0p1 " }, 3535cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%#+01.6a", "-0x1.000000p1" }, 3536cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -2.d, "%-+8.4a", "-0x1.0000p1" }, 3537cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3538cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00009d, "%a", "-0x1.797cc39ffd60fp-14" }, 3539cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -.00009d, "%5a", "-0x1.797cc39ffd60fp-14" }, 3540cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3541cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%a", "-0x1.26580b480ca46p30" }, 3542cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%5a", "-0x1.26580b480ca46p30" }, 3543cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%- 12.0a", "-0x1.2p30 " }, 3544cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%#+01.6a", "-0x1.26580bp30" }, 3545cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { -1234567890.012345678d, "%-+8.4a", "-0x1.2658p30" }, 3546cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3547cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%a", "0x1.fffffffffffffp1023" }, 3548cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MAX_VALUE, "%5a", "0x1.fffffffffffffp1023" }, 3549cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3550cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%a", "0x0.0000000000001p-1022" }, 3551cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.MIN_VALUE, "%5a", "0x0.0000000000001p-1022" }, 3552cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3553cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%a", "NaN" }, 3554cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%#.3a", "NaN" }, 3555cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%5a", " NaN" }, 3556cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%- 12.0a", "NaN " }, 3557cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%#+01.6a", "NaN" }, 3558cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NaN, "%-+8.4a", "NaN " }, 3559cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3560cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%a", "-Infinity" }, 3561cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%#.3a", "-Infinity" }, 3562cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%5a", "-Infinity" }, 3563cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%- 12.0a", "-Infinity " }, 3564cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%#+01.6a", "-Infinity" }, 3565cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.NEGATIVE_INFINITY, "%-+8.4a", "-Infinity" }, 3566cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3567cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%a", "Infinity" }, 3568cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%#.3a", "Infinity" }, 3569cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%5a", "Infinity" }, 3570cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%- 12.0a", " Infinity " }, 3571cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%#+01.6a", "+Infinity" }, 3572cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { Double.POSITIVE_INFINITY, "%-+8.4a", "+Infinity" }, 3573cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3574cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 3575cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 3576cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 3577cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 3578cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < tripleA.length; i++) { 3579cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 3580cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) tripleA[i][pattern], tripleA[i][input]); 3581cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleA[i][input] + ",pattern[" 3582cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleA[i][pattern], 3583cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath tripleA[i][output], f.toString()); 3584cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3585cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for conversion type 'A' 3586cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 3587cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(((String) tripleA[i][pattern]).toUpperCase(), tripleA[i][input]); 3588cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleA[i][input] + ",pattern[" 3589cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleA[i][pattern], ((String) tripleA[i][output]) 3590cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.UK), f.toString()); 3591cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3592cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3593cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3594cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 3595cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for BigDecimal 3596cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion type 'e' and 'E' 3597cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 3598cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_BigDecimalConversionE() { 3599cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 3600cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] tripleE = { 3601cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%e", "0.000000e+00" }, 3602cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%#.0e", "0.e+00" }, 3603cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%# 9.8e", " 0.00000000e+00" }, 3604cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%#+0(8.4e", "+0.0000e+00" }, 3605cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%-+17.6e", "+0.000000e+00 " }, 3606cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "% 0(20e", " 00000000.000000e+00" }, 3607cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3608cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%e", "1.000000e+00" }, 3609cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%#.0e", "1.e+00" }, 3610cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%# 9.8e", " 1.00000000e+00" }, 3611cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%#+0(8.4e", "+1.0000e+00" }, 3612cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%-+17.6e", "+1.000000e+00 " }, 3613cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "% 0(20e", " 00000001.000000e+00" }, 3614cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3615cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.TEN, "%e", "1.000000e+01" }, 3616cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.TEN, "%#.0e", "1.e+01" }, 3617cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.TEN, "%# 9.8e", " 1.00000000e+01" }, 3618cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.TEN, "%#+0(8.4e", "+1.0000e+01" }, 3619cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.TEN, "%-+17.6e", "+1.000000e+01 " }, 3620cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.TEN, "% 0(20e", " 00000001.000000e+01" }, 3621cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3622cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%e", "-1.000000e+00" }, 3623cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%#.0e", "-1.e+00" }, 3624cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%# 9.8e", "-1.00000000e+00" }, 3625cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%#+0(8.4e", "(1.0000e+00)" }, 3626cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%-+17.6e", "-1.000000e+00 " }, 3627cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "% 0(20e", "(0000001.000000e+00)" }, 3628cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3629cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("5.000E999"), "%e", "5.000000e+999" }, 3630cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("5.000E999"), "%#.0e", "5.e+999" }, 3631cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("5.000E999"), "%# 9.8e", " 5.00000000e+999" }, 3632cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("5.000E999"), "%#+0(8.4e", "+5.0000e+999" }, 3633cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("5.000E999"), "%-+17.6e", "+5.000000e+999 " }, 3634cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("5.000E999"), "% 0(20e", " 0000005.000000e+999" }, 3635cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3636cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-5.000E999"), "%e", "-5.000000e+999" }, 3637cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-5.000E999"), "%#.0e", "-5.e+999" }, 3638cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-5.000E999"), "%# 9.8e", "-5.00000000e+999" }, 3639cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-5.000E999"), "%#+0(8.4e", "(5.0000e+999)" }, 3640cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-5.000E999"), "%-+17.6e", "-5.000000e+999 " }, 3641cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-5.000E999"), "% 0(20e", "(000005.000000e+999)" }, 3642cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 3643cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 3644cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 3645cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 3646cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < tripleE.length; i++) { 3647cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3648cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) tripleE[i][pattern], tripleE[i][input]); 3649cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleE[i][input] + ",pattern[" 3650cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleE[i][pattern], 3651cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath tripleE[i][output], f.toString()); 3652cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3653cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for conversion type 'E' 3654cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3655cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(((String) tripleE[i][pattern]).toUpperCase(), tripleE[i][input]); 3656cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleE[i][input] + ",pattern[" 3657cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleE[i][pattern], ((String) tripleE[i][output]) 3658cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.US), f.toString()); 3659cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3660cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3661cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3662cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 3663cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for BigDecimal 3664cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion type 'g' and 'G' 3665cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 3666cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_BigDecimalConversionG() { 3667cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 3668cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] tripleG = { 3669cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%g", "0.00000" }, 3670cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%.5g", "0.0000" }, 3671cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%- (,9.8g", " 0.0000000" }, 3672cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%+0(,8.4g", "+000.000" }, 3673cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%-+10.6g", "+0.00000 " }, 3674cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "% 0(,12.0g", " 00000000000" }, 3675cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%g", "1.00000" }, 3676cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%.5g", "1.0000" }, 3677cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%- (,9.8g", " 1.0000000" }, 3678cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%+0(,8.4g", "+001.000" }, 3679cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%-+10.6g", "+1.00000 " }, 3680cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "% 0(,12.0g", " 00000000001" }, 3681cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3682cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%g", "-1.00000" }, 3683cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%.5g", "-1.0000" }, 3684cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%- (,9.8g", "(1.0000000)" }, 3685cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%+0(,8.4g", "(01.000)" }, 3686cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%-+10.6g", "-1.00000 " }, 3687cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "% 0(,12.0g", "(0000000001)" }, 3688cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3689cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-0.000001), "%g", "-1.00000e-06" }, 3690cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-0.000001), "%.5g", "-1.0000e-06" }, 3691cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-0.000001), "%- (,9.8g", "(1.0000000e-06)" }, 3692cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-0.000001), "%+0(,8.4g", "(1.000e-06)" }, 3693cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-0.000001), "%-+10.6g", "-1.00000e-06" }, 3694cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-0.000001), "% 0(,12.0g", "(000001e-06)" }, 3695cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3696cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(0.0002), "%g", "0.000200000" }, 3697cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(0.0002), "%.5g", "0.00020000" }, 3698cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(0.0002), "%- (,9.8g", " 0.00020000000" }, 3699cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(0.0002), "%+0(,8.4g", "+0.0002000" }, 3700cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(0.0002), "%-+10.6g", "+0.000200000" }, 3701cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(0.0002), "% 0(,12.0g", " 000000.0002" }, 3702cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3703cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-0.003), "%g", "-0.00300000" }, 3704cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-0.003), "%.5g", "-0.0030000" }, 3705cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-0.003), "%- (,9.8g", "(0.0030000000)" }, 3706cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-0.003), "%+0(,8.4g", "(0.003000)" }, 3707cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-0.003), "%-+10.6g", "-0.00300000" }, 3708cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-0.003), "% 0(,12.0g", "(000000.003)" }, 3709cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3710cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("5.000E999"), "%g", "5.00000e+999" }, 3711cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("5.000E999"), "%.5g", "5.0000e+999" }, 3712cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("5.000E999"), "%- (,9.8g", " 5.0000000e+999" }, 3713cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("5.000E999"), "%+0(,8.4g", "+5.000e+999" }, 3714cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("5.000E999"), "%-+10.6g", "+5.00000e+999" }, 3715cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("5.000E999"), "% 0(,12.0g", " 000005e+999" }, 3716cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3717cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-5.000E999"), "%g", "-5.00000e+999" }, 3718cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-5.000E999"), "%.5g", "-5.0000e+999" }, 3719cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-5.000E999"), "%- (,9.8g", "(5.0000000e+999)" }, 3720cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-5.000E999"), "%+0(,8.4g", "(5.000e+999)" }, 3721cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-5.000E999"), "%-+10.6g", "-5.00000e+999" }, 3722cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-5.000E999"), "% 0(,12.0g", "(00005e+999)" }, 3723cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 3724cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 3725cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 3726cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 3727cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < tripleG.length; i++) { 3728cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3729cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) tripleG[i][pattern], tripleG[i][input]); 3730cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleG[i][input] + ",pattern[" 3731cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleG[i][pattern], 3732cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath tripleG[i][output], f.toString()); 3733cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3734cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for conversion type 'G' 3735cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3736cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(((String) tripleG[i][pattern]).toUpperCase(), tripleG[i][input]); 3737cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleG[i][input] + ",pattern[" 3738cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleG[i][pattern], ((String) tripleG[i][output]) 3739cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toUpperCase(Locale.US), f.toString()); 3740cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3741cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3742cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 3743cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%- (,9.6g", new BigDecimal("4E6")); 3744cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 3745cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * fail on RI, spec says 'g' requires the output to be formatted in 3746cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * general scientific notation and the localization algorithm is 3747cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * applied. But RI format this case to 4.00000e+06, which does not 3748cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conform to the German Locale 3749cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 3750cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" 4,00000e+06", f.toString()); 3751cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3752cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3753cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 3754cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for BigDecimal 3755cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * conversion type 'f' 3756cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 3757cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_BigDecimalConversionF() { 3758cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3759cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 3760cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int input = 0; 3761cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int pattern = 1; 3762cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final int output = 2; 3763cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[][] tripleF = { 3764cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%f", "0.000000" }, 3765cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%#.3f", "0.000" }, 3766cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%#,5f", "0.000000" }, 3767cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%- #(12.0f", " 0. " }, 3768cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%#+0(1.6f", "+0.000000" }, 3769cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "%-+(8.4f", "+0.0000 " }, 3770cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ZERO, "% 0#(9.8f", " 0.00000000" }, 3771cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%f", "1.000000" }, 3772cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%#.3f", "1.000" }, 3773cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%#,5f", "1.000000" }, 3774cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%- #(12.0f", " 1. " }, 3775cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%#+0(1.6f", "+1.000000" }, 3776cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "%-+(8.4f", "+1.0000 " }, 3777cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.ONE, "% 0#(9.8f", " 1.00000000" }, 3778cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.TEN, "%f", "10.000000" }, 3779cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.TEN, "%#.3f", "10.000" }, 3780cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.TEN, "%#,5f", "10.000000" }, 3781cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.TEN, "%- #(12.0f", " 10. " }, 3782cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.TEN, "%#+0(1.6f", "+10.000000" }, 3783cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.TEN, "%-+(8.4f", "+10.0000" }, 3784cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { BigDecimal.TEN, "% 0#(9.8f", " 10.00000000" }, 3785cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%f", "-1.000000" }, 3786cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%#.3f", "-1.000" }, 3787cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%#,5f", "-1.000000" }, 3788cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%- #(12.0f", "(1.) " }, 3789cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%#+0(1.6f", "(1.000000)" }, 3790cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "%-+(8.4f", "(1.0000)" }, 3791cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal(-1), "% 0#(9.8f", "(1.00000000)" }, 3792cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("9999999999999999999999999999999999999999999"), "%f", "9999999999999999999999999999999999999999999.000000" }, 3793cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("9999999999999999999999999999999999999999999"), "%#.3f", "9999999999999999999999999999999999999999999.000" }, 3794cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("9999999999999999999999999999999999999999999"), "%#,5f", "9,999,999,999,999,999,999,999,999,999,999,999,999,999,999.000000" }, 3795cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("9999999999999999999999999999999999999999999"), "%- #(12.0f", " 9999999999999999999999999999999999999999999." }, 3796cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("9999999999999999999999999999999999999999999"), "%#+0(1.6f", "+9999999999999999999999999999999999999999999.000000" }, 3797cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("9999999999999999999999999999999999999999999"), "%-+(8.4f", "+9999999999999999999999999999999999999999999.0000" }, 3798cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("9999999999999999999999999999999999999999999"), "% 0#(9.8f", " 9999999999999999999999999999999999999999999.00000000" }, 3799cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-9999999999999999999999999999999999999999999"), "%f", "-9999999999999999999999999999999999999999999.000000" }, 3800cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-9999999999999999999999999999999999999999999"), "%#.3f", "-9999999999999999999999999999999999999999999.000" }, 3801cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-9999999999999999999999999999999999999999999"), "%#,5f", "-9,999,999,999,999,999,999,999,999,999,999,999,999,999,999.000000" }, 3802cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-9999999999999999999999999999999999999999999"), "%- #(12.0f", "(9999999999999999999999999999999999999999999.)" }, 3803cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-9999999999999999999999999999999999999999999"), "%#+0(1.6f", "(9999999999999999999999999999999999999999999.000000)" }, 3804cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-9999999999999999999999999999999999999999999"), "%-+(8.4f", "(9999999999999999999999999999999999999999999.0000)" }, 3805cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath { new BigDecimal("-9999999999999999999999999999999999999999999"), "% 0#(9.8f", "(9999999999999999999999999999999999999999999.00000000)" }, 3806cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath }; 3807cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < tripleF.length; i++) { 3808cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3809cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format((String) tripleF[i][pattern], tripleF[i][input]); 3810cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("triple[" + i + "]:" + tripleF[i][input] + ",pattern[" 3811cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + i + "]:" + tripleF[i][pattern], tripleF[i][output], f.toString()); 3812cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3813cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3814cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3815cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%f", new BigDecimal("5.0E9")); 3816cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // error on RI 3817cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // RI throw ArrayIndexOutOfBoundsException 3818cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5000000000.000000", f.toString()); 3819cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3820cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3821cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 3822cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for exceptions in 3823cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Float/Double/BigDecimal conversion type 'e', 'E', 'g', 'G', 'f', 'a', 'A' 3824cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 3825cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_FloatDoubleBigDecimalConversionException() { 3826cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 3827cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3828cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final char[] conversions = { 'e', 'E', 'g', 'G', 'f', 'a', 'A' }; 3829cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final Object[] illArgs = { false, (byte) 1, (short) 2, 3, (long) 4, 3830cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new BigInteger("5"), new Character('c'), new Object(), 3831cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Date() }; 3832cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < illArgs.length; i++) { 3833cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int j = 0; j < conversions.length; j++) { 3834cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3835cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 3836cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%" + conversions[j], illArgs[i]); 3837cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatConversionException"); 3838cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatConversionException e) { 3839cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3840cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3841cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3842cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3843cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3844cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3845cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 3846cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%a", new BigDecimal(1)); 3847cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatConversionException"); 3848cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatConversionException e) { 3849cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3850cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3851cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3852cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3853cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 3854cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%A", new BigDecimal(1)); 3855cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatConversionException"); 3856cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatConversionException e) { 3857cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3858cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3859cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3860cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final String[] flagsConversionMismatches = { "%,e", "%,E", "%#g", 3861cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "%#G", "%,a", "%,A", "%(a", "%(A" }; 3862cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < flagsConversionMismatches.length; i++) { 3863cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3864cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.CHINA); 3865cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(flagsConversionMismatches[i], new BigDecimal(1)); 3866cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FormatFlagsConversionMismatchException"); 3867cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatFlagsConversionMismatchException e) { 3868cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3869cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3870cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3871cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.JAPAN); 3872cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(flagsConversionMismatches[i], (BigDecimal) null); 3873cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FormatFlagsConversionMismatchException"); 3874cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatFlagsConversionMismatchException e) { 3875cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3876cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3877cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3878cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3879cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final String[] missingFormatWidths = { "%-0e", "%0e", "%-e", "%-0E", 3880cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "%0E", "%-E", "%-0g", "%0g", "%-g", "%-0G", "%0G", "%-G", 3881cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "%-0f", "%0f", "%-f", "%-0a", "%0a", "%-a", "%-0A", "%0A", 3882cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "%-A" }; 3883cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < missingFormatWidths.length; i++) { 3884cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3885cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.KOREA); 3886cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(missingFormatWidths[i], 1f); 3887cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw MissingFormatWidthException"); 3888cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatWidthException e) { 3889cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3890cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3891cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3892cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3893cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.KOREA); 3894cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(missingFormatWidths[i], (Float) null); 3895cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw MissingFormatWidthException"); 3896cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatWidthException e) { 3897cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3898cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3899cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3900cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3901cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final String[] illFlags = { "%+ e", "%+ E", "%+ g", "%+ G", "%+ f", 3902cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "%+ a", "%+ A", "%-03e", "%-03E", "%-03g", "%-03G", "%-03f", 3903cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "%-03a", "%-03A" }; 3904cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < illFlags.length; i++) { 3905cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3906cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.CANADA); 3907cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(illFlags[i], 1.23d); 3908cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatFlagsException"); 3909cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException e) { 3910cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3911cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3912cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3913cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3914cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.CANADA); 3915cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format(illFlags[i], (Double) null); 3916cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatFlagsException"); 3917cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException e) { 3918cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3919cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3920cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3921cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3922cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3923cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3924cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%F", 1); 3925cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnknownFormatConversionException"); 3926cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnknownFormatConversionException e) { 3927cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3928cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3929cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3930cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3931cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 3932cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for 3933cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Float/Double/BigDecimal exception throwing order 3934cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 3935cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_FloatDoubleBigDecimalExceptionOrder() { 3936cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 3937cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3938cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 3939cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Summary: UnknownFormatConversionException > 3940cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * MissingFormatWidthException > IllegalFormatFlagsException > 3941cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * FormatFlagsConversionMismatchException > 3942cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * IllegalFormatConversionException 3943cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 3944cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 3945cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3946cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // compare FormatFlagsConversionMismatchException and 3947cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // IllegalFormatConversionException 3948cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3949cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%,e", (byte) 1); 3950cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FormatFlagsConversionMismatchException"); 3951cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatFlagsConversionMismatchException e) { 3952cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3953cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3954cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3955cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3956cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // compare IllegalFormatFlagsException and 3957cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // FormatFlagsConversionMismatchException 3958cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3959cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%+ ,e", 1f); 3960cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatFlagsException"); 3961cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException e) { 3962cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3963cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3964cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3965cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3966cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // compare MissingFormatWidthException and 3967cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // IllegalFormatFlagsException 3968cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3969cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%+ -e", 1f); 3970cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw MissingFormatWidthException"); 3971cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatWidthException e) { 3972cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3973cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3974cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3975cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 3976cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // compare UnknownFormatConversionException and 3977cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // MissingFormatWidthException 3978cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 3979cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%-F", 1f); 3980cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnknownFormatConversionException"); 3981cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnknownFormatConversionException e) { 3982cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 3983cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3984cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 3985cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3986cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 3987cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for BigDecimal 3988cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * exception throwing order 3989cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 3990cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_BigDecimalExceptionOrder() { 3991cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 3992cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath BigDecimal bd = new BigDecimal("1.0"); 3993cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 3994cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 3995cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Summary: UnknownFormatConversionException > 3996cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * MissingFormatWidthException > IllegalFormatFlagsException > 3997cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * FormatFlagsConversionMismatchException > 3998cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * IllegalFormatConversionException 3999cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 4000cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 4001cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 4002cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // compare FormatFlagsConversionMismatchException and 4003cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // IllegalFormatConversionException 4004cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 4005cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%,e", (byte) 1); 4006cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FormatFlagsConversionMismatchException"); 4007cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FormatFlagsConversionMismatchException e) { 4008cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 4009cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4010cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4011cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 4012cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // compare IllegalFormatFlagsException and 4013cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // FormatFlagsConversionMismatchException 4014cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 4015cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%+ ,e", bd); 4016cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IllegalFormatFlagsException"); 4017cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IllegalFormatFlagsException e) { 4018cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 4019cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4020cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4021cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 4022cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // compare MissingFormatWidthException and 4023cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // IllegalFormatFlagsException 4024cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 4025cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%+ -e", bd); 4026cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw MissingFormatWidthException"); 4027cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MissingFormatWidthException e) { 4028cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 4029cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4030cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4031cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // compare UnknownFormatConversionException and 4032cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // MissingFormatWidthException 4033cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 4034cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.US); 4035cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%-F", bd); 4036cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw UnknownFormatConversionException"); 4037cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (UnknownFormatConversionException e) { 4038cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 4039cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4040cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4041cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4042cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 4043cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter#format(String, Object...) for null argment for 4044cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Float/Double/BigDecimal conversion 4045cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 4046cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_formatLjava_lang_String$Ljava_lang_Object_FloatDoubleBigDecimalNullConversion() { 4047cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = null; 4048cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4049cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test (Float)null 4050cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.FRANCE); 4051cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%#- (9.0e", (Float) null); 4052cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" ", f.toString()); 4053cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4054cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 4055cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%-+(1.6E", (Float) null); 4056cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("NULL", f.toString()); 4057cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4058cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 4059cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%+0(,8.4g", (Float) null); 4060cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" null", f.toString()); 4061cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4062cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.FRANCE); 4063cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%- (9.8G", (Float) null); 4064cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("NULL ", f.toString()); 4065cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4066cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.FRANCE); 4067cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%- (12.1f", (Float) null); 4068cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("n ", f.toString()); 4069cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4070cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.FRANCE); 4071cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("% .4a", (Float) null); 4072cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("null", f.toString()); 4073cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4074cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.FRANCE); 4075cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%06A", (Float) null); 4076cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" NULL", f.toString()); 4077cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4078cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test (Double)null 4079cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 4080cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%- (9e", (Double) null); 4081cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("null ", f.toString()); 4082cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4083cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 4084cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%#-+(1.6E", (Double) null); 4085cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("NULL", f.toString()); 4086cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4087cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 4088cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%+0(6.4g", (Double) null); 4089cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" null", f.toString()); 4090cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4091cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 4092cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%- (,5.8G", (Double) null); 4093cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("NULL ", f.toString()); 4094cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4095cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 4096cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("% (.4f", (Double) null); 4097cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("null", f.toString()); 4098cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4099cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 4100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%#.6a", (Double) null); 4101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("null", f.toString()); 4102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.GERMAN); 4104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("% 2.5A", (Double) null); 4105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("NULL", f.toString()); 4106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test (BigDecimal)null 4108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 4109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%#- (6.2e", (BigDecimal) null); 4110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("nu ", f.toString()); 4111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 4113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%-+(1.6E", (BigDecimal) null); 4114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("NULL", f.toString()); 4115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 4117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%+-(,5.3g", (BigDecimal) null); 4118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("nul ", f.toString()); 4119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 4121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%0 3G", (BigDecimal) null); 4122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("NULL", f.toString()); 4123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 4125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%0 (9.0G", (BigDecimal) null); 4126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" ", f.toString()); 4127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 4129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("% (.5f", (BigDecimal) null); 4130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("null", f.toString()); 4131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 4133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%06a", (BigDecimal) null); 4134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(" null", f.toString()); 4135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = new Formatter(Locale.UK); 4137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("% .5A", (BigDecimal) null); 4138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("NULL", f.toString()); 4139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 4142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter.BigDecimalLayoutForm#values() 4143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 4144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_values() { 4145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath BigDecimalLayoutForm[] vals = BigDecimalLayoutForm.values(); 4146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Invalid length of enum values", 2, vals.length); 4147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong scientific value in enum", BigDecimalLayoutForm.SCIENTIFIC, vals[0]); 4148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong dec float value in enum", BigDecimalLayoutForm.DECIMAL_FLOAT, vals[1]); 4149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 4152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.util.Formatter.BigDecimalLayoutForm#valueOf(String) 4153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 4154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_valueOfLjava_lang_String() { 4155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath BigDecimalLayoutForm sci = BigDecimalLayoutForm.valueOf("SCIENTIFIC"); 4156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong scientific value in enum", BigDecimalLayoutForm.SCIENTIFIC, sci); 4157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath BigDecimalLayoutForm decFloat = BigDecimalLayoutForm.valueOf("DECIMAL_FLOAT"); 4159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong dec float value from valueOf ", BigDecimalLayoutForm.DECIMAL_FLOAT, decFloat); 4160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 4163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Regression test for Harmony-5845 4164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * test the short name for timezone whether uses DaylightTime or not 4165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 4166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_DaylightTime() { 4167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Calendar c1 = new GregorianCalendar(2007, 0, 1); 4168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Calendar c2 = new GregorianCalendar(2007, 7, 1); 4169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (String tz : TimeZone.getAvailableIDs()) { 4171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (tz.equals("America/Los_Angeles")) { 4172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath c1.setTimeZone(TimeZone.getTimeZone(tz)); 4173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath c2.setTimeZone(TimeZone.getTimeZone(tz)); 4174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(String.format("%1$tZ%2$tZ", c1, c2).equals("PSTPDT")); 4175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (tz.equals("America/Panama")) { 4177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath c1.setTimeZone(TimeZone.getTimeZone(tz)); 4178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath c2.setTimeZone(TimeZone.getTimeZone(tz)); 4179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(String.format("%1$tZ%2$tZ", c1, c2).equals("ESTEST")); 4180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /* 4185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Regression test for Harmony-5845 4186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * test scientific notation to follow RI's behavior 4187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 4188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ScientificNotation() { 4189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Formatter f = new Formatter(); 4190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath MathContext mc = new MathContext(30); 4191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath BigDecimal value = new BigDecimal(0.1, mc); 4192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.format("%.30G", value); 4193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String result = f.toString(); 4195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String expected = "0.100000000000000005551115123126"; 4196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(expected, result); 4197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 4201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Setup resource files for testing 4202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 4203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath protected void setUp() throws IOException { 4204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath root = System.getProperty("user.name").equalsIgnoreCase("root"); 4205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath notExist = File.createTempFile("notexist", null); 4206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath notExist.delete(); 4207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fileWithContent = File.createTempFile("filewithcontent", null); 4209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath BufferedOutputStream bw = new BufferedOutputStream( 4210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new FileOutputStream(fileWithContent)); 4211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath bw.write(1);// write something into the file 4212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath bw.close(); 4213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath readOnly = File.createTempFile("readonly", null); 4215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath readOnly.setReadOnly(); 4216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath secret = File.createTempFile("secret", null); 4218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath defaultTimeZone = TimeZone.getDefault(); 4220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath TimeZone cst = TimeZone.getTimeZone("Asia/Shanghai"); 4221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath TimeZone.setDefault(cst); 4222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 4225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Delete the resource files if they exist 4226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 4227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath protected void tearDown() { 4228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (notExist.exists()) { 4229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath notExist.delete(); 4230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (fileWithContent.exists()) { 4233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fileWithContent.delete(); 4234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (readOnly.exists()) { 4236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath readOnly.delete(); 4237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (secret.exists()) { 4239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath secret.delete(); 4240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 4242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath TimeZone.setDefault(defaultTimeZone); 4243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 4244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath} 4245