Author: jbellis
Date: Fri Apr 16 16:04:22 2010
New Revision: 934972

URL: http://svn.apache.org/viewvc?rev=934972&view=rev
Log:
merge RangeIntersectionTest into RangeTest.  patch by Stu Hood; reviewed by 
jbellis for CASSANDRA-951

Removed:
    
cassandra/trunk/test/unit/org/apache/cassandra/dht/RangeIntersectionTest.java
Modified:
    cassandra/trunk/test/unit/org/apache/cassandra/dht/RangeTest.java

Modified: cassandra/trunk/test/unit/org/apache/cassandra/dht/RangeTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/dht/RangeTest.java?rev=934972&r1=934971&r2=934972&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/dht/RangeTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/dht/RangeTest.java Fri Apr 
16 16:04:22 2010
@@ -20,6 +20,9 @@ package org.apache.cassandra.dht;
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.lang.StringUtils;
 
 import org.junit.Test;
 
@@ -170,4 +173,124 @@ public class RangeTest
         assert twowrap.intersects(not);
         assert not.intersects(twowrap);
     }
+
+    static void assertIntersection(Range one, Range two, Range ... ranges)
+    {
+        Set<Range> correct = Range.rangeSet(ranges);
+        Set<Range> result1 = one.intersectionWith(two);
+        assert result1.equals(correct) : String.format("%s != %s",
+                                                       
StringUtils.join(result1, ","),
+                                                       
StringUtils.join(correct, ","));
+        Set<Range> result2 = two.intersectionWith(one);
+        assert result2.equals(correct) : String.format("%s != %s",
+                                                       
StringUtils.join(result2, ","),
+                                                       
StringUtils.join(correct, ","));
+    }
+
+    private void assertNoIntersection(Range wraps1, Range nowrap3)
+    {
+        assertIntersection(wraps1, nowrap3);
+    }
+
+    @Test
+    public void testIntersectionWithAll()
+    {
+        Range all0 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("0"));
+        Range all10 = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("10"));
+        Range all100 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("100"));
+        Range all1000 = new Range(new BigIntegerToken("1000"), new 
BigIntegerToken("1000"));
+        Range wraps = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("10"));
+
+        assertIntersection(all0, wraps, wraps);
+        assertIntersection(all10, wraps, wraps);
+        assertIntersection(all100, wraps, wraps);
+        assertIntersection(all1000, wraps, wraps);
+    }
+
+    @Test
+    public void testIntersectionContains()
+    {
+        Range wraps1 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("10"));
+        Range wraps2 = new Range(new BigIntegerToken("90"), new 
BigIntegerToken("20"));
+        Range wraps3 = new Range(new BigIntegerToken("90"), new 
BigIntegerToken("0"));
+        Range nowrap1 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("110"));
+        Range nowrap2 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("10"));
+        Range nowrap3 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("9"));
+
+        assertIntersection(wraps1, wraps2, wraps1);
+        assertIntersection(wraps3, wraps2, wraps3);
+
+        assertIntersection(wraps1, nowrap1, nowrap1);
+        assertIntersection(wraps1, nowrap2, nowrap2);
+        assertIntersection(nowrap2, nowrap3, nowrap3);
+
+        assertIntersection(wraps1, wraps1, wraps1);
+        assertIntersection(nowrap1, nowrap1, nowrap1);
+        assertIntersection(nowrap2, nowrap2, nowrap2);
+        assertIntersection(wraps3, wraps3, wraps3);
+    }
+
+    @Test
+    public void testNoIntersection()
+    {
+        Range wraps1 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("10"));
+        Range wraps2 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("0"));
+        Range nowrap1 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("100"));
+        Range nowrap2 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("200"));
+        Range nowrap3 = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("100"));
+
+        assertNoIntersection(wraps1, nowrap3);
+        assertNoIntersection(wraps2, nowrap1);
+        assertNoIntersection(nowrap1, nowrap2);
+    }
+
+    @Test
+    public void testIntersectionOneWraps()
+    {
+        Range wraps1 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("10"));
+        Range wraps2 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("0"));
+        Range nowrap1 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("200"));
+        Range nowrap2 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("100"));
+
+        assertIntersection(wraps1,
+                           nowrap1,
+                           new Range(new BigIntegerToken("0"), new 
BigIntegerToken("10")),
+                           new Range(new BigIntegerToken("100"), new 
BigIntegerToken("200")));
+        assertIntersection(wraps2,
+                           nowrap1,
+                           new Range(new BigIntegerToken("100"), new 
BigIntegerToken("200")));
+        assertIntersection(wraps1,
+                           nowrap2,
+                           new Range(new BigIntegerToken("0"), new 
BigIntegerToken("10")));
+    }
+
+    @Test
+    public void testIntersectionTwoWraps()
+    {
+        Range wraps1 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("20"));
+        Range wraps2 = new Range(new BigIntegerToken("120"), new 
BigIntegerToken("90"));
+        Range wraps3 = new Range(new BigIntegerToken("120"), new 
BigIntegerToken("110"));
+        Range wraps4 = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("0"));
+        Range wraps5 = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("1"));
+        Range wraps6 = new Range(new BigIntegerToken("30"), new 
BigIntegerToken("10"));
+
+        assertIntersection(wraps1,
+                           wraps2,
+                           new Range(new BigIntegerToken("120"), new 
BigIntegerToken("20")));
+        assertIntersection(wraps1,
+                           wraps3,
+                           new Range(new BigIntegerToken("120"), new 
BigIntegerToken("20")),
+                           new Range(new BigIntegerToken("100"), new 
BigIntegerToken("110")));
+        assertIntersection(wraps1,
+                           wraps4,
+                           new Range(new BigIntegerToken("10"), new 
BigIntegerToken("20")),
+                           new Range(new BigIntegerToken("100"), new 
BigIntegerToken("0")));
+        assertIntersection(wraps1,
+                           wraps5,
+                           new Range(new BigIntegerToken("10"), new 
BigIntegerToken("20")),
+                           new Range(new BigIntegerToken("100"), new 
BigIntegerToken("1")));
+        assertIntersection(wraps1,
+                           wraps6,
+                           new Range(new BigIntegerToken("100"), new 
BigIntegerToken("10")));
+    }
 }


Reply via email to