diff options
Diffstat (limited to 'guava-tests/test/com/google/common/primitives/UnsignedIntegerTest.java')
-rw-r--r-- | guava-tests/test/com/google/common/primitives/UnsignedIntegerTest.java | 144 |
1 files changed, 52 insertions, 92 deletions
diff --git a/guava-tests/test/com/google/common/primitives/UnsignedIntegerTest.java b/guava-tests/test/com/google/common/primitives/UnsignedIntegerTest.java index 6297261..fece9c9 100644 --- a/guava-tests/test/com/google/common/primitives/UnsignedIntegerTest.java +++ b/guava-tests/test/com/google/common/primitives/UnsignedIntegerTest.java @@ -1,11 +1,11 @@ /* * 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 @@ -14,6 +14,8 @@ package com.google.common.primitives; +import junit.framework.TestCase; + import com.google.common.annotations.GwtCompatible; import com.google.common.annotations.GwtIncompatible; import com.google.common.collect.ImmutableSet; @@ -21,90 +23,47 @@ import com.google.common.testing.EqualsTester; import com.google.common.testing.NullPointerTester; import com.google.common.testing.SerializableTester; -import junit.framework.TestCase; - -import java.math.BigInteger; - /** * Tests for {@code UnsignedInteger}. - * + * * @author Louis Wasserman */ @GwtCompatible(emulated = true) public class UnsignedIntegerTest extends TestCase { private static final ImmutableSet<Integer> TEST_INTS; - private static final ImmutableSet<Long> TEST_LONGS; private static int force32(int value) { - // GWT doesn't consistently overflow values to make them 32-bit, so we need to force it. + // GWT doesn't overflow values to make them 32-bit, so we need to force it. return value & 0xffffffff; } static { ImmutableSet.Builder<Integer> testIntsBuilder = ImmutableSet.builder(); - ImmutableSet.Builder<Long> testLongsBuilder = ImmutableSet.builder(); for (int i = -3; i <= 3; i++) { - testIntsBuilder - .add(i) - .add(force32(Integer.MIN_VALUE + i)) - .add(force32(Integer.MAX_VALUE + i)); - testLongsBuilder - .add((long) i) - .add((long) Integer.MIN_VALUE + i) - .add((long) Integer.MAX_VALUE + i) - .add((1L << 32) + i); + testIntsBuilder.add(i).add(-i).add(force32(Integer.MIN_VALUE + i)) + .add(force32(Integer.MAX_VALUE + i)); } TEST_INTS = testIntsBuilder.build(); - TEST_LONGS = testLongsBuilder.build(); } - public void testFromIntBitsAndIntValueAreInverses() { + public void testAsUnsignedAndIntValueAreInverses() { for (int value : TEST_INTS) { - assertEquals(UnsignedInts.toString(value), value, UnsignedInteger.fromIntBits(value) + assertEquals(UnsignedInts.toString(value), value, UnsignedInteger.asUnsigned(value) .intValue()); } } - public void testFromIntBitsLongValue() { + public void testAsUnsignedLongValue() { for (int value : TEST_INTS) { long expected = value & 0xffffffffL; - assertEquals(UnsignedInts.toString(value), expected, UnsignedInteger.fromIntBits(value) + assertEquals(UnsignedInts.toString(value), expected, UnsignedInteger.asUnsigned(value) .longValue()); } } - - public void testValueOfLong() { - long min = 0; - long max = (1L << 32) - 1; - for (long value : TEST_LONGS) { - boolean expectSuccess = value >= min && value <= max; - try { - assertEquals(value, UnsignedInteger.valueOf(value).longValue()); - assertTrue(expectSuccess); - } catch (IllegalArgumentException e) { - assertFalse(expectSuccess); - } - } - } - - public void testValueOfBigInteger() { - long min = 0; - long max = (1L << 32) - 1; - for (long value : TEST_LONGS) { - boolean expectSuccess = value >= min && value <= max; - try { - assertEquals(value, UnsignedInteger.valueOf(BigInteger.valueOf(value)) - .longValue()); - assertTrue(expectSuccess); - } catch (IllegalArgumentException e) { - assertFalse(expectSuccess); - } - } - } public void testToString() { for (int value : TEST_INTS) { - UnsignedInteger unsignedValue = UnsignedInteger.fromIntBits(value); + UnsignedInteger unsignedValue = UnsignedInteger.asUnsigned(value); assertEquals(unsignedValue.bigIntegerValue().toString(), unsignedValue.toString()); } } @@ -113,7 +72,7 @@ public class UnsignedIntegerTest extends TestCase { public void testToStringRadix() { for (int radix = Character.MIN_RADIX; radix <= Character.MAX_RADIX; radix++) { for (int l : TEST_INTS) { - UnsignedInteger value = UnsignedInteger.fromIntBits(l); + UnsignedInteger value = UnsignedInteger.asUnsigned(l); assertEquals(value.bigIntegerValue().toString(radix), value.toString(radix)); } } @@ -123,7 +82,7 @@ public class UnsignedIntegerTest extends TestCase { int[] radices = {2, 3, 5, 7, 10, 12, 16, 21, 31, 36}; for (int radix : radices) { for (int l : TEST_INTS) { - UnsignedInteger value = UnsignedInteger.fromIntBits(l); + UnsignedInteger value = UnsignedInteger.asUnsigned(l); assertEquals(value.bigIntegerValue().toString(radix), value.toString(radix)); } } @@ -131,66 +90,66 @@ public class UnsignedIntegerTest extends TestCase { public void testFloatValue() { for (int value : TEST_INTS) { - UnsignedInteger unsignedValue = UnsignedInteger.fromIntBits(value); + UnsignedInteger unsignedValue = UnsignedInteger.asUnsigned(value); assertEquals(unsignedValue.bigIntegerValue().floatValue(), unsignedValue.floatValue()); } } public void testDoubleValue() { for (int value : TEST_INTS) { - UnsignedInteger unsignedValue = UnsignedInteger.fromIntBits(value); + UnsignedInteger unsignedValue = UnsignedInteger.asUnsigned(value); assertEquals(unsignedValue.bigIntegerValue().doubleValue(), unsignedValue.doubleValue()); } } - public void testPlus() { + public void testAdd() { for (int a : TEST_INTS) { for (int b : TEST_INTS) { - UnsignedInteger aUnsigned = UnsignedInteger.fromIntBits(a); - UnsignedInteger bUnsigned = UnsignedInteger.fromIntBits(b); + UnsignedInteger aUnsigned = UnsignedInteger.asUnsigned(a); + UnsignedInteger bUnsigned = UnsignedInteger.asUnsigned(b); int expected = aUnsigned.bigIntegerValue().add(bUnsigned.bigIntegerValue()).intValue(); - UnsignedInteger unsignedSum = aUnsigned.plus(bUnsigned); + UnsignedInteger unsignedSum = aUnsigned.add(bUnsigned); assertEquals(expected, unsignedSum.intValue()); } } } - public void testMinus() { + public void testSubtract() { for (int a : TEST_INTS) { for (int b : TEST_INTS) { - UnsignedInteger aUnsigned = UnsignedInteger.fromIntBits(a); - UnsignedInteger bUnsigned = UnsignedInteger.fromIntBits(b); + UnsignedInteger aUnsigned = UnsignedInteger.asUnsigned(a); + UnsignedInteger bUnsigned = UnsignedInteger.asUnsigned(b); int expected = force32(aUnsigned.bigIntegerValue().subtract(bUnsigned.bigIntegerValue()).intValue()); - UnsignedInteger unsignedSub = aUnsigned.minus(bUnsigned); + UnsignedInteger unsignedSub = aUnsigned.subtract(bUnsigned); assertEquals(expected, unsignedSub.intValue()); } } } @GwtIncompatible("multiply") - public void testTimes() { + public void testMultiply() { for (int a : TEST_INTS) { for (int b : TEST_INTS) { - UnsignedInteger aUnsigned = UnsignedInteger.fromIntBits(a); - UnsignedInteger bUnsigned = UnsignedInteger.fromIntBits(b); + UnsignedInteger aUnsigned = UnsignedInteger.asUnsigned(a); + UnsignedInteger bUnsigned = UnsignedInteger.asUnsigned(b); int expected = force32(aUnsigned.bigIntegerValue().multiply(bUnsigned.bigIntegerValue()).intValue()); - UnsignedInteger unsignedMul = aUnsigned.times(bUnsigned); + UnsignedInteger unsignedMul = aUnsigned.multiply(bUnsigned); assertEquals(aUnsigned + " * " + bUnsigned, expected, unsignedMul.intValue()); } } } - public void testDividedBy() { + public void testDivide() { for (int a : TEST_INTS) { for (int b : TEST_INTS) { if (b != 0) { - UnsignedInteger aUnsigned = UnsignedInteger.fromIntBits(a); - UnsignedInteger bUnsigned = UnsignedInteger.fromIntBits(b); + UnsignedInteger aUnsigned = UnsignedInteger.asUnsigned(a); + UnsignedInteger bUnsigned = UnsignedInteger.asUnsigned(b); int expected = aUnsigned.bigIntegerValue().divide(bUnsigned.bigIntegerValue()).intValue(); - UnsignedInteger unsignedDiv = aUnsigned.dividedBy(bUnsigned); + UnsignedInteger unsignedDiv = aUnsigned.divide(bUnsigned); assertEquals(expected, unsignedDiv.intValue()); } } @@ -200,32 +159,31 @@ public class UnsignedIntegerTest extends TestCase { public void testDivideByZeroThrows() { for (int a : TEST_INTS) { try { - UnsignedInteger.fromIntBits(a).divide(UnsignedInteger.ZERO); + UnsignedInteger.asUnsigned(a).divide(UnsignedInteger.ZERO); fail("Expected ArithmeticException"); } catch (ArithmeticException expected) {} } } - public void testMod() { + public void testRemainder() { for (int a : TEST_INTS) { for (int b : TEST_INTS) { if (b != 0) { - UnsignedInteger aUnsigned = UnsignedInteger.fromIntBits(a); - UnsignedInteger bUnsigned = UnsignedInteger.fromIntBits(b); + UnsignedInteger aUnsigned = UnsignedInteger.asUnsigned(a); + UnsignedInteger bUnsigned = UnsignedInteger.asUnsigned(b); int expected = - aUnsigned.bigIntegerValue().mod(bUnsigned.bigIntegerValue()).intValue(); - UnsignedInteger unsignedRem = aUnsigned.mod(bUnsigned); + aUnsigned.bigIntegerValue().remainder(bUnsigned.bigIntegerValue()).intValue(); + UnsignedInteger unsignedRem = aUnsigned.remainder(bUnsigned); assertEquals(expected, unsignedRem.intValue()); } } } } - @SuppressWarnings("ReturnValueIgnored") - public void testModByZero() { + public void testRemainderByZero() { for (int a : TEST_INTS) { try { - UnsignedInteger.fromIntBits(a).mod(UnsignedInteger.ZERO); + UnsignedInteger.asUnsigned(a).remainder(UnsignedInteger.ZERO); fail("Expected ArithmeticException"); } catch (ArithmeticException expected) {} } @@ -234,8 +192,8 @@ public class UnsignedIntegerTest extends TestCase { public void testCompare() { for (int a : TEST_INTS) { for (int b : TEST_INTS) { - UnsignedInteger aUnsigned = UnsignedInteger.fromIntBits(a); - UnsignedInteger bUnsigned = UnsignedInteger.fromIntBits(b); + UnsignedInteger aUnsigned = UnsignedInteger.asUnsigned(a); + UnsignedInteger bUnsigned = UnsignedInteger.asUnsigned(b); assertEquals(aUnsigned.bigIntegerValue().compareTo(bUnsigned.bigIntegerValue()), aUnsigned.compareTo(bUnsigned)); } @@ -243,11 +201,11 @@ public class UnsignedIntegerTest extends TestCase { } @GwtIncompatible("too slow") - public void testEquals() { + public void testEqualsAndValueOf() { EqualsTester equalsTester = new EqualsTester(); for (int a : TEST_INTS) { long value = a & 0xffffffffL; - equalsTester.addEqualityGroup(UnsignedInteger.fromIntBits(a), UnsignedInteger.valueOf(value), + equalsTester.addEqualityGroup(UnsignedInteger.asUnsigned(a), UnsignedInteger.valueOf(value), UnsignedInteger.valueOf(Long.toString(value)), UnsignedInteger.valueOf(Long.toString(value, 16), 16)); } @@ -256,7 +214,7 @@ public class UnsignedIntegerTest extends TestCase { public void testIntValue() { for (int a : TEST_INTS) { - UnsignedInteger aUnsigned = UnsignedInteger.fromIntBits(a); + UnsignedInteger aUnsigned = UnsignedInteger.asUnsigned(a); int intValue = aUnsigned.bigIntegerValue().intValue(); assertEquals(intValue, aUnsigned.intValue()); } @@ -265,12 +223,14 @@ public class UnsignedIntegerTest extends TestCase { @GwtIncompatible("serialization") public void testSerialization() { for (int a : TEST_INTS) { - SerializableTester.reserializeAndAssert(UnsignedInteger.fromIntBits(a)); + SerializableTester.reserializeAndAssert(UnsignedInteger.asUnsigned(a)); } } @GwtIncompatible("NullPointerTester") - public void testNulls() { - new NullPointerTester().testAllPublicStaticMethods(UnsignedInteger.class); + public void testNulls() throws Exception { + NullPointerTester tester = new NullPointerTester(); + tester.setDefault(UnsignedInteger.class, UnsignedInteger.ONE); + tester.testAllPublicStaticMethods(UnsignedInteger.class); } } |