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.
Constructs a new NumberRange
using
- * number
as both the minimum and maximum in
- * this range.
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.
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.
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.
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.
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); - } - - -} -