Modified: incubator/cassandra/tags/cassandra-0.6.0-beta1/test/unit/org/apache/cassandra/dht/RangeIntersectionTest.java URL: http://svn.apache.org/viewvc/incubator/cassandra/tags/cassandra-0.6.0-beta1/test/unit/org/apache/cassandra/dht/RangeIntersectionTest.java?rev=915428&r1=915421&r2=915428&view=diff ============================================================================== --- incubator/cassandra/tags/cassandra-0.6.0-beta1/test/unit/org/apache/cassandra/dht/RangeIntersectionTest.java (original) +++ incubator/cassandra/tags/cassandra-0.6.0-beta1/test/unit/org/apache/cassandra/dht/RangeIntersectionTest.java Tue Feb 23 16:57:51 2010 @@ -1,131 +1,131 @@ -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; - -public class RangeIntersectionTest -{ - 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"))); - } -} +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; + +public class RangeIntersectionTest +{ + 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"))); + } +}
