1 /* 2 * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 20 * CA 95054 USA or visit www.sun.com if you need additional information or 21 * have any questions. 22 */ 23 24 /* 25 * @test 26 * @bug 4984872 27 * @summary Basic tests of toPlainString method 28 * @author Joseph D. Darcy 29 * @compile -source 1.5 ToPlainStringTests.java 30 * @run main ToPlainStringTests 31 */ 32 33 import java.math.*; 34 35 public class ToPlainStringTests { 36 public static void main(String argv[]) { 37 String [][] testCases = { 38 {"0", "0"}, 39 {"1", "1"}, 40 {"10", "10"}, 41 {"2e1", "20"}, 42 {"3e2", "300"}, 43 {"4e3", "4000"}, 44 {"5e4", "50000"}, 45 {"6e5", "600000"}, 46 {"7e6", "7000000"}, 47 {"8e7", "80000000"}, 48 {"9e8", "900000000"}, 49 {"1e9", "1000000000"}, 50 51 {".0", "0.0"}, 52 {".1", "0.1"}, 53 {".10", "0.10"}, 54 {"1e-1", "0.1"}, 55 {"1e-1", "0.1"}, 56 {"2e-2", "0.02"}, 57 {"3e-3", "0.003"}, 58 {"4e-4", "0.0004"}, 59 {"5e-5", "0.00005"}, 60 {"6e-6", "0.000006"}, 61 {"7e-7", "0.0000007"}, 62 {"8e-8", "0.00000008"}, 63 {"9e-9", "0.000000009"}, 64 {"9000e-12", "0.000000009000"}, 65 }; 66 67 int errors = 0; 68 for(String[] testCase: testCases) { 69 BigDecimal bd = new BigDecimal(testCase[0]); 70 String s; 71 72 if (!(s=bd.toPlainString()).equals(testCase[1])) { 73 errors++; 74 System.err.println("Unexpected plain result ``" + 75 s + "'' from BigDecimal " + 76 bd); 77 } 78 79 if (!(s=("-"+bd.toPlainString())).equals("-"+testCase[1])) { 80 errors++; 81 System.err.println("Unexpected plain result ``" + 82 s + "'' from BigDecimal " + 83 bd); 84 } 85 } 86 87 if(errors > 0) 88 throw new RuntimeException(errors + " errors during run."); 89 } 90 }