/* * Copyright (c) 2003, 2015, 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. */ /* * * * Shared static test method for StrictMath tests. */ package test.java.lang.StrictMath; import org.testng.Assert; public class Tests { private Tests() { } static void test(String testName, double input, double result, double expected) { Assert.assertEquals(Double.compare(expected, result), 0, "Failure for " + testName + ":\n" + "\tFor input " + input + "\t(" + Double.toHexString(input) + ")\n" + "\texpected " + expected + "\t(" + Double.toHexString(expected) + ")\n" + "\tgot " + result + "\t(" + Double.toHexString(result) + ")."); } static void test(String testName, double input1, double input2, double result, double expected) { Assert.assertEquals(Double.compare(expected, result), 0, "Failure for " + testName + ":\n" + "\tFor input " + input1 + "\t(" + Double.toHexString(input1) + "), " + +input2 + "\t(" + Double.toHexString(input2) + ")\n" + "\texpected " + expected + "\t(" + Double.toHexString(expected) + ")\n" + "\tgot " + result + "\t(" + Double.toHexString(result) + ")."); } /** * Returns a double over the normalized range of floating-point values. * * @return a double over the normalized range of floating-point values */ static double createRandomDouble(java.util.Random random) { final int EXPONENT_RANGE = Double.MAX_EXPONENT - Double.MIN_EXPONENT + 1; int targetExponent = Double.MIN_EXPONENT + random.nextInt(EXPONENT_RANGE + 1); double tmp = random.nextDouble(); // Double in the range of [0.0, 1.0) int tmpExponent = Math.getExponent(tmp); return Math.scalb(tmp, targetExponent - tmpExponent); } }