Return-Path: Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: (qmail 78258 invoked from network); 6 Nov 2009 11:46:03 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 6 Nov 2009 11:46:03 -0000 Received: (qmail 95603 invoked by uid 500); 6 Nov 2009 11:46:02 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 95514 invoked by uid 500); 6 Nov 2009 11:46:02 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 95336 invoked by uid 99); 6 Nov 2009 11:46:02 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Nov 2009 11:46:02 +0000 X-ASF-Spam-Status: No, hits=-3.7 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Nov 2009 11:45:59 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 499022388980; Fri, 6 Nov 2009 11:45:39 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r833358 - in /commons/proper/lang/trunk/src: java/org/apache/commons/lang/Range.java test/org/apache/commons/lang/RangeTest.java Date: Fri, 06 Nov 2009 11:45:39 -0000 To: commits@commons.apache.org From: bayard@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20091106114539.499022388980@eris.apache.org> Author: bayard Date: Fri Nov 6 11:45:38 2009 New Revision: 833358 URL: http://svn.apache.org/viewvc?rev=833358&view=rev Log: Adding more tests, plus a rename of lessThan to elementBefore; greaterThan to elementAfter and bugfix so the new code works - LANG-551 Modified: commons/proper/lang/trunk/src/java/org/apache/commons/lang/Range.java commons/proper/lang/trunk/src/test/org/apache/commons/lang/RangeTest.java Modified: commons/proper/lang/trunk/src/java/org/apache/commons/lang/Range.java URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Range.java?rev=833358&r1=833357&r2=833358&view=diff ============================================================================== --- commons/proper/lang/trunk/src/java/org/apache/commons/lang/Range.java (original) +++ commons/proper/lang/trunk/src/java/org/apache/commons/lang/Range.java Fri Nov 6 11:45:38 2009 @@ -160,7 +160,6 @@ * * @param element the element to test, may be null * @return true if the specified element occurs within this range - * @throws IllegalArgumentException if the Number cannot be compared */ public boolean contains(T element) { if(element == null) { @@ -169,20 +168,32 @@ return (comparator.compare(element, getMinimum()) > -1) && (comparator.compare(element, getMaximum()) < 1); } - public boolean lessThan(T element) { + /** + *

Tests whether the specified element occurs before this range.

+ * + * @param element the element to test + * @return true if the specified element occurs before this range + */ + public boolean elementBefore(T element) { if (element == null) { - return false; + return false; // ?? } - return this.comparator.compare(getMinimum(), element) < 1; + return this.comparator.compare(element, getMinimum()) < 0; } - public boolean greaterThan(T element) { + /** + *

Tests whether the specified element occurs after this range.

+ * + * @param element the element to test + * @return true if the specified element occurs after this range + */ + public boolean elementAfter(T element) { if (element == null) { - return false; + return false; // ?? } - return this.comparator.compare(getMaximum(), element) > -1; + return this.comparator.compare(element, getMaximum()) > 0; } // Range tests Modified: commons/proper/lang/trunk/src/test/org/apache/commons/lang/RangeTest.java URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/org/apache/commons/lang/RangeTest.java?rev=833358&r1=833357&r2=833358&view=diff ============================================================================== --- commons/proper/lang/trunk/src/test/org/apache/commons/lang/RangeTest.java (original) +++ commons/proper/lang/trunk/src/test/org/apache/commons/lang/RangeTest.java Fri Nov 6 11:45:38 2009 @@ -51,9 +51,6 @@ doubleRange = new Range((double) 10, (double) 20); } - /** - * Test method for 'org.apache.commons.lang.Range.equals(Object)' - */ public void testEqualsObject() { assertEquals(byteRange, byteRange); assertEquals(byteRange, byteRange2); @@ -66,22 +63,25 @@ assertFalse(byteRange2.equals("Ni!")); } - /** - * Test method for 'org.apache.commons.lang.Range.hashCode()' - */ public void testHashCode() { assertEquals(byteRange.hashCode(), byteRange2.hashCode()); assertFalse(byteRange.hashCode() == byteRange3.hashCode()); + + assertEquals(intRange.hashCode(), intRange.hashCode()); + assertTrue(intRange.hashCode() != 0); } - /** - * Test method for 'org.apache.commons.lang.Range.toString()' - */ public void testToString() { assertNotNull(byteRange.toString()); + + String str = intRange.toString(); + assertEquals("Range[10,20]", str); +// assertSame(str, intRange.toString()); // no longer passes - does it matter? + assertEquals("Range[-20,-10]", new Range(-20, -10).toString()); } // -------------------------------------------------------------------------- + public void testGetMinimum() { assertEquals(10, (int) intRange.getMinimum()); assertEquals(10L, (long) longRange.getMinimum()); @@ -106,6 +106,28 @@ assertFalse(intRange.contains(25)); } + public void testElementBefore() { + assertFalse(intRange.elementBefore(null)); + + assertTrue(intRange.elementBefore(5)); + assertFalse(intRange.elementBefore(10)); + assertFalse(intRange.elementBefore(15)); + assertFalse(intRange.elementBefore(20)); + assertFalse(intRange.elementBefore(25)); + } + + public void testElementAfter() { + assertFalse(intRange.elementAfter(null)); + + assertFalse(intRange.elementAfter(5)); + assertFalse(intRange.elementAfter(10)); + assertFalse(intRange.elementAfter(15)); + assertFalse(intRange.elementAfter(20)); + assertTrue(intRange.elementAfter(25)); + } + + // -------------------------------------------------------------------------- + public void testContainsRange() { // null handling @@ -138,4 +160,36 @@ } + public void testOverlapsRange() { + + // null handling + assertFalse(intRange.overlapsRange(null)); + + // easy inside range + assertTrue(intRange.overlapsRange(new Range(12, 18))); + + // outside range on each side + assertFalse(intRange.overlapsRange(new Range(32, 45))); + assertFalse(intRange.overlapsRange(new Range(2, 8))); + + // equals range + assertTrue(intRange.overlapsRange(new Range(10, 20))); + + // overlaps + assertTrue(intRange.overlapsRange(new Range(9, 14))); + assertTrue(intRange.overlapsRange(new Range(16, 21))); + + // touches lower boundary + assertTrue(intRange.overlapsRange(new Range(10, 19))); + assertTrue(intRange.overlapsRange(new Range(10, 21))); + + // touches upper boundary + assertTrue(intRange.overlapsRange(new Range(11, 20))); + assertTrue(intRange.overlapsRange(new Range(9, 20))); + + // negative + assertFalse(intRange.overlapsRange(new Range(-11, -18))); + + } + }