jdk/test/sun/misc/FloatingDecimal/TestFloatingDecimal.java
changeset 34858 ec69df775846
parent 34857 14d1224cfed3
parent 34852 bd26599f2098
child 34859 4379223f8806
--- a/jdk/test/sun/misc/FloatingDecimal/TestFloatingDecimal.java	Tue Dec 29 21:27:25 2015 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +0,0 @@
-/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-import java.util.Random;
-import sun.misc.FloatingDecimal;
-
-/*
-OldFloatingDecimalForTest
-
-public class OldFloatingDecimalForTest {
-  public boolean digitsRoundedUp();
-  public OldFloatingDecimalForTest(double);
-  public OldFloatingDecimalForTest(float);
-  public boolean decimalDigitsExact();
-  public java.lang.String toString();
-  public java.lang.String toJavaFormatString();
-  public void appendTo(java.lang.Appendable);
-  public static OldFloatingDecimalForTest readJavaFormatString(java.lang.String) throws java.lang.NumberFormatException;
-  public strictfp double doubleValue();
-  public strictfp float floatValue();
-}
-
-sun.misc.FloatingDecimal
-
-public class sun.misc.FloatingDecimal {
-  public sun.misc.FloatingDecimal();
-  public static java.lang.String toJavaFormatString(double);
-  public static java.lang.String toJavaFormatString(float);
-  public static void appendTo(double, java.lang.Appendable);
-  public static void appendTo(float, java.lang.Appendable);
-  public static double parseDouble(java.lang.String) throws java.lang.NumberFormatException;
-  public static float parseFloat(java.lang.String) throws java.lang.NumberFormatException;
-  public static sun.misc.FloatingDecimal$AbstractD2ABuffer getD2ABuffer(double);
-}
-*/
-
-/**
- * @test
- * @bug 7032154
- * @summary unit tests of sun.misc.FloatingDecimal
- * @modules java.base/sun.misc
- * @library ../../../java/lang/Math
- * @build DoubleConsts FloatConsts
- * @run main TestFloatingDecimal
- * @author Brian Burkhalter
- * @key randomness
- */
-public class TestFloatingDecimal {
-    private static enum ResultType {
-        RESULT_EXCEPTION,
-        RESULT_PRINT
-    }
-
-    private static final ResultType RESULT_TYPE = ResultType.RESULT_PRINT;
-    private static final int NUM_RANDOM_TESTS = 100000;
-
-    private static final Random RANDOM = new Random();
-
-    private static void result(String message) {
-        switch (RESULT_TYPE) {
-            case RESULT_EXCEPTION:
-                throw new RuntimeException(message);
-            case RESULT_PRINT:
-                System.err.println(message);
-                break;
-            default:
-                assert false;
-        }
-    }
-
-    private static int check(String test, Object expected, Object actual) {
-        int failures = 0;
-        if(!actual.equals(expected)) {
-            failures++;
-            result("Test "+test+" expected "+expected+" but obtained "+actual);
-        }
-        return failures;
-    }
-
-    private static int testAppendToDouble() {
-        System.out.println("  testAppendToDouble");
-        int failures = 0;
-
-        for(int i = 0; i < NUM_RANDOM_TESTS; i++) {
-            double[] d = new double[] {
-                RANDOM.nextLong(),
-                RANDOM.nextGaussian(),
-                RANDOM.nextDouble()*Double.MAX_VALUE
-            };
-            for(int j = 0; j < d.length; j++) {
-                OldFloatingDecimalForTest ofd = new OldFloatingDecimalForTest(d[j]);
-                StringBuilder sb = new StringBuilder();
-                ofd.appendTo(sb);
-                String oldString = sb.toString();
-                sb = new StringBuilder();
-                FloatingDecimal.appendTo(d[j], sb);
-                String newString = sb.toString();
-                failures += check("testAppendToDouble", oldString, newString);
-            }
-        }
-
-        return failures;
-    }
-
-    private static int testAppendToFloat() {
-        System.out.println("  testAppendToFloat");
-        int failures = 0;
-
-        for(int i = 0; i < NUM_RANDOM_TESTS; i++) {
-            float[] f = new float[] {
-                RANDOM.nextLong(),
-                (float)RANDOM.nextGaussian(),
-                RANDOM.nextFloat()*Float.MAX_VALUE
-            };
-            for(int j = 0; j < f.length; j++) {
-                OldFloatingDecimalForTest ofd = new OldFloatingDecimalForTest(f[j]);
-                StringBuilder sb = new StringBuilder();
-                ofd.appendTo(sb);
-                String oldString = sb.toString();
-                sb = new StringBuilder();
-                FloatingDecimal.appendTo(f[j], sb);
-                String newString = sb.toString();
-                failures += check("testAppendToFloat", oldString, newString);
-            }
-        }
-
-        return failures;
-    }
-
-    private static int testAppendTo() {
-        System.out.println("testAppendTo");
-        int failures = 0;
-
-        failures += testAppendToDouble();
-        failures += testAppendToFloat();
-
-        return failures;
-    }
-
-    private static int testParseDouble() {
-        System.out.println("  testParseDouble");
-        int failures = 0;
-
-        for(int i = 0; i < NUM_RANDOM_TESTS; i++) {
-            double[] d = new double[] {
-                RANDOM.nextLong(),
-                RANDOM.nextGaussian(),
-                RANDOM.nextDouble()*Double.MAX_VALUE
-            };
-            for(int j = 0; j < d.length; j++) {
-                OldFloatingDecimalForTest ofd = new OldFloatingDecimalForTest(d[j]);
-                String javaFormatString = ofd.toJavaFormatString();
-                ofd = OldFloatingDecimalForTest.readJavaFormatString(javaFormatString);
-                double oldDouble = ofd.doubleValue();
-                double newDouble = FloatingDecimal.parseDouble(javaFormatString);
-                failures += check("testParseDouble", oldDouble, newDouble);
-            }
-        }
-
-        return failures;
-    }
-
-    private static int testParseFloat() {
-        System.out.println("  testParseFloat");
-        int failures = 0;
-
-        for(int i = 0; i < NUM_RANDOM_TESTS; i++) {
-            float[] f = new float[] {
-                RANDOM.nextInt(),
-                (float)RANDOM.nextGaussian(),
-                RANDOM.nextFloat()*Float.MAX_VALUE
-            };
-            for(int j = 0; j < f.length; j++) {
-                OldFloatingDecimalForTest ofd = new OldFloatingDecimalForTest(f[j]);
-                String javaFormatString = ofd.toJavaFormatString();
-                ofd = OldFloatingDecimalForTest.readJavaFormatString(javaFormatString);
-                float oldFloat = ofd.floatValue();
-                float newFloat = FloatingDecimal.parseFloat(javaFormatString);
-                failures += check("testParseFloat", oldFloat, newFloat);
-            }
-        }
-
-        return failures;
-    }
-
-    private static int testParse() {
-        System.out.println("testParse");
-        int failures = 0;
-
-        failures += testParseDouble();
-        failures += testParseFloat();
-
-        return failures;
-    }
-
-    private static int testToJavaFormatStringDoubleFixed() {
-        System.out.println("    testToJavaFormatStringDoubleFixed");
-        int failures = 0;
-
-        double[] d = new double [] {
-            -5.9522650387500933e18, // dtoa() fast path
-            0.872989018674569,      // dtoa() fast iterative - long
-            1.1317400099603851e308  // dtoa() slow iterative
-        };
-
-        for(int i = 0; i < d.length; i++) {
-            OldFloatingDecimalForTest ofd = new OldFloatingDecimalForTest(d[i]);
-            failures += check("testToJavaFormatStringDoubleFixed", ofd.toJavaFormatString(), FloatingDecimal.toJavaFormatString(d[i]));
-        }
-
-        return failures;
-    }
-
-    private static int testToJavaFormatStringDoubleRandom() {
-        System.out.println("    testToJavaFormatStringDoubleRandom");
-        int failures = 0;
-
-        for(int i = 0; i < NUM_RANDOM_TESTS; i++) {
-            double[] d = new double[] {
-                RANDOM.nextLong(),
-                RANDOM.nextGaussian(),
-                RANDOM.nextDouble()*Double.MAX_VALUE
-            };
-            for(int j = 0; j < d.length; j++) {
-                OldFloatingDecimalForTest ofd = new OldFloatingDecimalForTest(d[j]);
-                failures += check("testToJavaFormatStringDoubleRandom", ofd.toJavaFormatString(), FloatingDecimal.toJavaFormatString(d[j]));
-            }
-        }
-
-        return failures;
-    }
-
-    private static int testToJavaFormatStringDouble() {
-        System.out.println("  testToJavaFormatStringDouble");
-        int failures = 0;
-        failures += testToJavaFormatStringDoubleFixed();
-        failures += testToJavaFormatStringDoubleRandom();
-        return failures;
-    }
-
-    private static int testToJavaFormatStringFloatFixed() {
-        System.out.println("    testToJavaFormatStringFloatFixed");
-        int failures = 0;
-
-        float[] f = new float[] {
-            -9.8784166e8f, // dtoa() fast path
-            0.70443946f,   // dtoa() fast iterative - int
-            1.8254228e37f  // dtoa() slow iterative
-        };
-
-        for(int i = 0; i < f.length; i++) {
-            OldFloatingDecimalForTest ofd = new OldFloatingDecimalForTest(f[i]);
-            failures += check("testToJavaFormatStringFloatFixed", ofd.toJavaFormatString(), FloatingDecimal.toJavaFormatString(f[i]));
-        }
-
-        return failures;
-    }
-
-    private static int testToJavaFormatStringFloatRandom() {
-        System.out.println("    testToJavaFormatStringFloatRandom");
-        int failures = 0;
-
-        for(int i = 0; i < NUM_RANDOM_TESTS; i++) {
-            float[] f = new float[] {
-                RANDOM.nextInt(),
-                (float)RANDOM.nextGaussian(),
-                RANDOM.nextFloat()*Float.MAX_VALUE
-            };
-            for(int j = 0; j < f.length; j++) {
-                OldFloatingDecimalForTest ofd = new OldFloatingDecimalForTest(f[j]);
-                failures += check("testToJavaFormatStringFloatRandom", ofd.toJavaFormatString(), FloatingDecimal.toJavaFormatString(f[j]));
-            }
-        }
-
-        return failures;
-    }
-
-    private static int testToJavaFormatStringFloat() {
-        System.out.println("  testToJavaFormatStringFloat");
-        int failures = 0;
-
-        failures += testToJavaFormatStringFloatFixed();
-        failures += testToJavaFormatStringFloatRandom();
-
-        return failures;
-    }
-
-    private static int testToJavaFormatString() {
-        System.out.println("testToJavaFormatString");
-        int failures = 0;
-
-        failures += testToJavaFormatStringDouble();
-        failures += testToJavaFormatStringFloat();
-
-        return failures;
-    }
-
-    public static void main(String[] args) {
-        int failures = 0;
-
-        failures += testAppendTo();
-        failures += testParse();
-        failures += testToJavaFormatString();
-
-        if (failures != 0) {
-            throw new RuntimeException("" + failures + " failures while testing FloatingDecimal");
-        }
-    }
-}