Path: blob/master/test/jdk/java/math/BigDecimal/StrippingZerosTest.java
41149 views
/*1* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/*24* @test25* @bug 410885226* @summary A few tests of stripTrailingZeros27* @run main StrippingZerosTest28* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+EliminateAutoBox -XX:AutoBoxCacheMax=20000 StrippingZerosTest29* @author Joseph D. Darcy30*/3132import java.math.*;3334public class StrippingZerosTest {35public static void main(String argv[]) {36BigDecimal [][] testCases = {37{new BigDecimal("1.00000"), new BigDecimal("1")},38{new BigDecimal("1.000"), new BigDecimal("1")},39{new BigDecimal("1"), new BigDecimal("1")},40{new BigDecimal("0.1234"), new BigDecimal("0.1234")},41{new BigDecimal("0.12340"), new BigDecimal("0.1234")},42{new BigDecimal("0.12340000000"), new BigDecimal("0.1234")},43{new BigDecimal("1234.5678"), new BigDecimal("1234.5678")},44{new BigDecimal("1234.56780"), new BigDecimal("1234.5678")},45{new BigDecimal("1234.567800000"), new BigDecimal("1234.5678")},46{new BigDecimal("0"), new BigDecimal("0")},47{new BigDecimal("0e2"), BigDecimal.ZERO},48{new BigDecimal("0e-2"), BigDecimal.ZERO},49{new BigDecimal("0e42"), BigDecimal.ZERO},50{new BigDecimal("+0e42"), BigDecimal.ZERO},51{new BigDecimal("-0e42"), BigDecimal.ZERO},52{new BigDecimal("0e-42"), BigDecimal.ZERO},53{new BigDecimal("+0e-42"), BigDecimal.ZERO},54{new BigDecimal("-0e-42"), BigDecimal.ZERO},55{new BigDecimal("0e-2"), BigDecimal.ZERO},56{new BigDecimal("0e100"), BigDecimal.ZERO},57{new BigDecimal("0e-100"), BigDecimal.ZERO},58{new BigDecimal("10"), new BigDecimal("1e1")},59{new BigDecimal("20"), new BigDecimal("2e1")},60{new BigDecimal("100"), new BigDecimal("1e2")},61{new BigDecimal("1000000000"), new BigDecimal("1e9")},62{new BigDecimal("100000000e1"), new BigDecimal("1e9")},63{new BigDecimal("10000000e2"), new BigDecimal("1e9")},64{new BigDecimal("1000000e3"), new BigDecimal("1e9")},65{new BigDecimal("100000e4"), new BigDecimal("1e9")},66// BD value which larger than Long.MaxValue67{new BigDecimal("1.0000000000000000000000000000"), new BigDecimal("1")},68{new BigDecimal("-1.0000000000000000000000000000"), new BigDecimal("-1")},69{new BigDecimal("1.00000000000000000000000000001"), new BigDecimal("1.00000000000000000000000000001")},70{new BigDecimal("1000000000000000000000000000000e4"), new BigDecimal("1e34")},71};7273for(int i = 0; i < testCases.length; i++) {7475if (!(testCases[i][0]).stripTrailingZeros().equals(testCases[i][1])) {76throw new RuntimeException("For input " + testCases[i][0].toString() +77" did not received expected result " +78testCases[i][1].toString() + ", got " +79testCases[i][0].stripTrailingZeros());80}8182testCases[i][0] = testCases[i][0].negate();83testCases[i][1] = testCases[i][1].negate();8485if (!(testCases[i][0]).stripTrailingZeros().equals(testCases[i][1])) {86throw new RuntimeException("For input " + testCases[i][0].toString() +87" did not received expected result " +88testCases[i][1].toString() + ", got " +89testCases[i][0].stripTrailingZeros());90}9192}93}94}959697