diff --git a/src/java/org/apache/commons/lang/NumberRange.java b/src/java/org/apache/commons/lang/NumberRange.java deleted file mode 100644 index 8167d0f0e..000000000 --- a/src/java/org/apache/commons/lang/NumberRange.java +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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 org.apache.commons.lang; - -/** - *

Represents a range of {@link Number} objects.

- * - *

This class uses double comparisons. This means that it - * is unsuitable for dealing with large Long, BigDecimal - * or BigInteger numbers.

- * - * @author Christopher Elkins - * @author Stephen Colebourne - * @since 1.0 - * @version $Revision$ $Date$ - * - * @deprecated Use one of the Range classes in org.apache.commons.lang.math. - * Class will be removed in Commons Lang 3.0. - * - */ -public final class NumberRange { - - /* The minimum number in this range. */ - private final Number min; - - /* The maximum number in this range. */ - private final Number max; - - - /** - *

Constructs a new NumberRange using - * number as both the minimum and maximum in - * this range.

- * - * @param num the number to use for this range - * @throws NullPointerException if the number is null - */ - public NumberRange(Number num) { - if (num == null) { - throw new NullPointerException("The number must not be null"); - } - - this.min = num; - this.max = num; - } - - /** - *

Constructs a new NumberRange with the specified - * minimum and maximum numbers.

- * - *

If the maximum is less than the minimum, the range will be constructed - * from the minimum value to the minimum value, not what you would expect!.

- * - * @param min the minimum number in this range - * @param max the maximum number in this range - * @throws NullPointerException if either the minimum or maximum number is - * null - */ - public NumberRange(Number min, Number max) { - if (min == null) { - throw new NullPointerException("The minimum value must not be null"); - } else if (max == null) { - throw new NullPointerException("The maximum value must not be null"); - } - - if (max.doubleValue() < min.doubleValue()) { - this.min = this.max = min; - } else { - this.min = min; - this.max = max; - } - } - - /** - *

Returns the minimum number in this range.

- * - * @return the minimum number in this range - */ - public Number getMinimum() { - return min; - } - - /** - *

Returns the maximum number in this range.

- * - * @return the maximum number in this range - */ - public Number getMaximum() { - return max; - } - - /** - *

Tests whether the specified number occurs within - * this range using double comparison.

- * - * @param number the number to test - * @return true if the specified number occurs within this - * range; otherwise, false - */ - public boolean includesNumber(Number number) { - if (number == null) { - return false; - } else { - return !(min.doubleValue() > number.doubleValue()) && - !(max.doubleValue() < number.doubleValue()); - } - } - - /** - *

Tests whether the specified range occurs entirely within this - * range using double comparison.

- * - * @param range the range to test - * @return true if the specified range occurs entirely within - * this range; otherwise, false - */ - public boolean includesRange(NumberRange range) { - if (range == null) { - return false; - } else { - return includesNumber(range.min) && includesNumber(range.max); - } - } - - /** - *

Tests whether the specified range overlaps with this range - * using double comparison.

- * - * @param range the range to test - * @return true if the specified range overlaps with this - * range; otherwise, false - */ - public boolean overlaps(NumberRange range) { - if (range == null) { - return false; - } else { - return range.includesNumber(min) || range.includesNumber(max) || - includesRange(range); - } - } - - /** - *

Indicates whether some other Object is - * "equal" to this one.

- * - * @param obj the reference object with which to compare - * @return true if this object is the same as the obj - * argument; false otherwise - */ - public boolean equals(Object obj) { - if (obj == this) { - return true; - } else if (!(obj instanceof NumberRange)) { - return false; - } else { - NumberRange range = (NumberRange)obj; - return min.equals(range.min) && max.equals(range.max); - } - } - - /** - *

Returns a hash code value for this object.

- * - * @return a hash code value for this object - */ - public int hashCode() { - int result = 17; - result = 37 * result + min.hashCode(); - result = 37 * result + max.hashCode(); - return result; - } - - /** - *

Returns the string representation of this range.

- * - *

This string is the string representation of the minimum and - * maximum numbers in the range, separated by a hyphen. If a number - * is negative, then it is enclosed in parentheses.

- * - * @return the string representation of this range - */ - public String toString() { - StringBuffer sb = new StringBuffer(); - - if (min.doubleValue() < 0) { - sb.append('(') - .append(min) - .append(')'); - } else { - sb.append(min); - } - - sb.append('-'); - - if (max.doubleValue() < 0) { - sb.append('(') - .append(max) - .append(')'); - } else { - sb.append(max); - } - - return sb.toString(); - } - -} diff --git a/src/test/org/apache/commons/lang/LangTestSuite.java b/src/test/org/apache/commons/lang/LangTestSuite.java index b52435046..d7818287a 100644 --- a/src/test/org/apache/commons/lang/LangTestSuite.java +++ b/src/test/org/apache/commons/lang/LangTestSuite.java @@ -70,7 +70,6 @@ public class LangTestSuite extends TestCase { suite.addTest(LocaleUtilsTest.suite()); suite.addTest(NotImplementedExceptionTest.suite()); suite.addTest(NullArgumentExceptionTest.suite()); - suite.addTest(NumberRangeTest.suite()); suite.addTest(ObjectUtilsTest.suite()); suite.addTest(RandomStringUtilsTest.suite()); suite.addTest(SerializationUtilsTest.suite()); diff --git a/src/test/org/apache/commons/lang/NumberRangeTest.java b/src/test/org/apache/commons/lang/NumberRangeTest.java deleted file mode 100644 index a7933c6f0..000000000 --- a/src/test/org/apache/commons/lang/NumberRangeTest.java +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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 org.apache.commons.lang; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - * Test cases for the {@link NumberRange} class. - * - * @author Christopher Elkins - * @author Ringo De Smet - * @author Tim O'Brien - * @version $Revision$ $Date$ - */ - -public final class NumberRangeTest extends TestCase { - - - private NumberRange tenToTwenty; - private NumberRange fifteenToTwentyFive; - private NumberRange fiveToNine; - private Number five; - private Number nine; - private Number ten; - private Number fifteen; - private Number twenty; - private Number twentyFive; - - public NumberRangeTest(String name) { - super(name); - } - - public void setUp() { - five = new Integer(5); - nine = new Double(9.0); - ten = new Integer(10); - fifteen = new Integer(15); - twenty = new Integer(20); - twentyFive = new Integer(25); - - tenToTwenty = new NumberRange(ten, twenty); - fifteenToTwentyFive = new NumberRange( fifteen, twentyFive); - fiveToNine = new NumberRange( five, nine ); - } - - - public static Test suite() { - TestSuite suite = new TestSuite(NumberRangeTest.class); - suite.setName("NumberRange Tests"); - return suite; - } - - public void testMaxMin() { - boolean expected = true; - boolean result = tenToTwenty.getMaximum().equals(twenty); - assertEquals(expected, result); - - expected = true; - result = tenToTwenty.getMinimum().equals(ten); - assertEquals(expected, result); - } - - public void testEquals() { - boolean expected = false; - boolean result = tenToTwenty.equals(new NumberRange(five, ten)); - assertEquals(expected, result); - - expected = true; - result = tenToTwenty.equals(new NumberRange(ten, twenty)); - assertEquals(expected, result); - - expected = false; - result = tenToTwenty.equals(new NumberRange(ten, fifteen)); - assertEquals(expected, result); - - expected = false; - result = tenToTwenty.equals(new NumberRange(fifteen, twenty)); - assertEquals(expected, result); - } - - public void testEqualsWithOtherObject() { - assertEquals( "A NumberRange should not equals a String object", false, fiveToNine.equals("TEST")); - } - - public void testEqualsWithSameReference() { - assertEquals( "A NumberRange should equal itself", true, fiveToNine.equals(fiveToNine)); - } - - public void testEqualsNull() { - assertEquals( "A NumberRange should not equal null", false, fiveToNine.equals(null)); - } - - public void testHashCode() { - NumberRange nr = new NumberRange( new Integer(5), new Double(9.0)); - assertEquals( "The hashCode of 5-9 should equals the hashcode of another NumberRange of the same min/max", - fiveToNine.hashCode(), nr.hashCode()); - assertTrue( "The hashCode of 10-20 should not equal the hashCode of 5-9", - fiveToNine.hashCode() != tenToTwenty.hashCode()); - } - - public void testIncludesNumber() { - boolean expected = false; - boolean result = tenToTwenty.includesNumber(five); - assertEquals(expected, result); - - expected = true; - result = tenToTwenty.includesNumber(ten); - assertEquals(expected, result); - - expected = true; - result = tenToTwenty.includesNumber(fifteen); - assertEquals(expected, result); - - expected = true; - result = tenToTwenty.includesNumber(twenty); - assertEquals(expected, result); - - expected = false; - result = tenToTwenty.includesNumber(twentyFive); - assertEquals(expected, result); - } - - public void testIncludesNumberNull() { - boolean result = tenToTwenty.includesNumber(null); - assertEquals("Includes number should return false for null values", false, result); - } - - public void testIncludesRange() { - boolean expected = false; - boolean result = tenToTwenty.includesRange(new NumberRange(five, ten)); - assertEquals(expected, result); - - expected = false; - result = tenToTwenty.includesRange(new NumberRange(five, fifteen)); - assertEquals(expected, result); - - expected = true; - result = tenToTwenty.includesRange(new NumberRange(ten, fifteen)); - assertEquals(expected, result); - - expected = true; - result = tenToTwenty.includesRange(new NumberRange(ten, twenty)); - assertEquals(expected, result); - - expected = true; - result = tenToTwenty.includesRange(new NumberRange(fifteen, twenty)); - assertEquals(expected, result); - - expected = false; - result = - tenToTwenty.includesRange(new NumberRange(fifteen, twentyFive)); - assertEquals(expected, result); - - expected = false; - result = - tenToTwenty.includesRange(new NumberRange(twenty, twentyFive)); - assertEquals(expected, result); - } - - public void testIncludesRangeNull() { - boolean result = tenToTwenty.includesRange(null); - assertEquals("Includes range should return false for null values", false, result); - } - - public void testConstructor() { - NumberRange nr = new NumberRange( new Double(2.0)); - assertEquals("Unexpected min on NumberRange", 2.0, nr.getMinimum().doubleValue(), Double.MIN_VALUE); - assertEquals("Unexpected max on NumberRange", 2.0, nr.getMaximum().doubleValue(), Double.MIN_VALUE); - } - - public void testConstructorNullParameters() { - try { - NumberRange nr = new NumberRange(null); - fail("NumberRange(null) did not throw an exception."); - } catch (Exception e) { - assertTrue( "NumberRange(null)", e instanceof NullPointerException); - } - - try { - NumberRange nr = new NumberRange(five, null); - fail("NumberRange(five, null) did not throw an exception."); - } catch (Exception e) { - assertTrue("NumberRange(five, null)", e instanceof NullPointerException); - } - - try { - NumberRange nr = new NumberRange(null, five); - fail("NumberRange(null, five) did not throw an exception."); - } catch (Exception e) { - assertTrue("NumberRange(null, five)", e instanceof NullPointerException); - } - } - - public void testConstructorWithMaxLessThanMin() { - NumberRange nr = new NumberRange( new Double(2.0), new Double(1.0)); - assertEquals("Unexpected min on NumberRange", 2.0, nr.getMinimum().doubleValue(), Double.MIN_VALUE); - assertEquals("Unexpected max on NumberRange", 2.0, nr.getMaximum().doubleValue(), Double.MIN_VALUE); - } - - public void testOverlap() { - assertEquals( "5-9 should not overlap 10-20", false, fiveToNine.overlaps( tenToTwenty )); - assertEquals( "10-20 should overlap 15-25", true, tenToTwenty.overlaps( fifteenToTwentyFive )); - } - - public void testOverlapNull() { - assertEquals( "5-9 should not overlap null", false, fiveToNine.overlaps( null )); - } - - public void testToString() { - String expected = "10-20"; - String result = tenToTwenty.toString(); - assertEquals(expected, result); - } - - public void testToStringWithNegatives() { - String expected = "(-20)-(-10)"; - NumberRange nr = new NumberRange( new Integer(-20), new Integer(-10)); - String result = nr.toString(); - assertEquals(expected, result); - - expected = "(-20)-10"; - nr = new NumberRange( new Integer(-20), new Integer(10)); - result = nr.toString(); - assertEquals(expected, result); - } - - -} -