diff options
Diffstat (limited to 'guava-tests/test/com/google/common/math/DoubleUtilsTest.java')
-rw-r--r-- | guava-tests/test/com/google/common/math/DoubleUtilsTest.java | 66 |
1 files changed, 25 insertions, 41 deletions
diff --git a/guava-tests/test/com/google/common/math/DoubleUtilsTest.java b/guava-tests/test/com/google/common/math/DoubleUtilsTest.java index 65952aa..f2f99a7 100644 --- a/guava-tests/test/com/google/common/math/DoubleUtilsTest.java +++ b/guava-tests/test/com/google/common/math/DoubleUtilsTest.java @@ -1,40 +1,39 @@ -/* - * Copyright (C) 2011 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package com.google.common.math; import static com.google.common.math.MathTesting.ALL_BIGINTEGER_CANDIDATES; +import static com.google.common.math.MathTesting.ALL_DOUBLE_CANDIDATES; +import static com.google.common.math.MathTesting.EXPONENTS; import static com.google.common.math.MathTesting.FINITE_DOUBLE_CANDIDATES; -import static com.google.common.math.MathTesting.POSITIVE_FINITE_DOUBLE_CANDIDATES; -import junit.framework.TestCase; +import java.math.BigInteger; +import junit.framework.TestCase; import sun.misc.FpUtils; -import java.math.BigInteger; - -/** - * Tests for {@link DoubleUtils}. - * - * @author Louis Wasserman - */ public class DoubleUtilsTest extends TestCase { + public strictfp void testScalbPositiveExponent() { + for (int k : EXPONENTS) { + for (double d : ALL_DOUBLE_CANDIDATES) { + assertEquals(d * StrictMath.pow(2.0, k), DoubleUtils.scalb(d, k)); + } + } + } + + public void testGetExponent() { + for (double d : ALL_DOUBLE_CANDIDATES) { + assertEquals(FpUtils.getExponent(d), DoubleUtils.getExponent(d)); + } + } + + public void testNextUp() { + for (double d : FINITE_DOUBLE_CANDIDATES) { + assertEquals(FpUtils.nextUp(d), DoubleUtils.next(d, true)); + } + } + public void testNextDown() { for (double d : FINITE_DOUBLE_CANDIDATES) { - assertEquals(FpUtils.nextDown(d), DoubleUtils.nextDown(d)); + assertEquals(FpUtils.nextDown(d), DoubleUtils.next(d, false)); } } @@ -43,19 +42,4 @@ public class DoubleUtilsTest extends TestCase { assertEquals(b.doubleValue(), DoubleUtils.bigToDouble(b)); } } - - public void testEnsureNonNegative() { - assertEquals(0.0, DoubleUtils.ensureNonNegative(0.0)); - for (double positiveValue : POSITIVE_FINITE_DOUBLE_CANDIDATES) { - assertEquals(positiveValue, DoubleUtils.ensureNonNegative(positiveValue)); - assertEquals(0.0, DoubleUtils.ensureNonNegative(-positiveValue)); - } - assertEquals(Double.POSITIVE_INFINITY, DoubleUtils.ensureNonNegative(Double.POSITIVE_INFINITY)); - assertEquals(0.0, DoubleUtils.ensureNonNegative(Double.NEGATIVE_INFINITY)); - try { - DoubleUtils.ensureNonNegative(Double.NaN); - fail("Expected IllegalArgumentException from ensureNonNegative(Double.NaN)"); - } catch (IllegalArgumentException expected) { - } - } } |