public MarkerRange build() { MarkerRange markerRange = new MarkerRange(comparator); if (start != null) { markerRange = markerRange.from(start.build()); } if (end != null) { markerRange = markerRange.to(end.build()); } return markerRange; } }
@Test public void testGroupRange() { Constraints c = emptyConstraints.partitionedBy(num) .from("number", 5).toBefore("number", 18); Marker start = new Marker.Builder("id_number", 5).build(); Marker stop = new Marker.Builder("id_number", 18).build(); Assert.assertEquals( new MarkerRange(numCmp).from(start).to(stop), Iterables.getOnlyElement(c.toKeyRanges())); }
@Test public void testHashRange() { Constraints c = emptyConstraints.partitionedBy(hash) .from("id", "0000").toBefore("id", "0001"); // note the lack of a hash field -- ranges cannot be projected through hash Marker start = new Marker.Builder("id_copy", "0000").build(); Marker stop = new Marker.Builder("id_copy", "0001").build(); Assert.assertEquals( new MarkerRange(hashCmp).from(start).to(stop), Iterables.getOnlyElement(c.toKeyRanges())); }
@Test public void testComplement() { final MarkerRange unbounded = new MarkerRange(comparator); final MarkerRange unboundedToNov1 = new MarkerRange(comparator).to(NOV_1); final MarkerRange oct12ToOct15 = new MarkerRange(comparator).from(OCT_12).to(OCT_15); final MarkerRange afterNov1ToUnbounded = new MarkerRange(comparator).fromAfter(NOV_1); TestHelpers.assertThrows("Can't find complement of unbounded range.", IllegalArgumentException.class, new Runnable() { @Override public void run() { unbounded.complement(); } }); assertEquals(afterNov1ToUnbounded, unboundedToNov1.complement()); assertEquals(unboundedToNov1, afterNov1ToUnbounded.complement()); assertEquals(unbounded, oct12ToOct15.complement()); } }
@Test public void testSingleRange() { Constraints c = emptyConstraints.partitionedBy(num2) .from("number", 5).toBefore("number", 18) .to("number2", 9); Marker start = new Marker.Builder("id_number", 5).build(); Marker stop = new Marker.Builder().add("id_number", 18).add("id_number2", 9).build(); Assert.assertEquals( new MarkerRange(num2Cmp).from(start).to(stop), Iterables.getOnlyElement(c.toKeyRanges())); }
@Test public void testTimeRange() { Long[] timestamps = new Long[] { 1379020547042L, // Thu Sep 12 14:15:47 PDT 2013 1381612547042L, // Sat Oct 12 14:15:47 PDT 2013 1384204547042L // Mon Nov 11 13:15:47 PST 2013 }; Constraints c = emptyConstraints.partitionedBy(time) .from("timestamp", timestamps[0]).to("timestamp", timestamps[2]); Marker sep = new Marker.Builder().add("year", 2013).add("month", 9).add("day", 12).build(); Marker nov = new Marker.Builder().add("year", 2013).add("month", 11).add("day", 11).build(); Assert.assertEquals( new MarkerRange(timeCmp).from(sep).to(nov), Iterables.getOnlyElement(c.toKeyRanges())); }
@Test public void testSpan() { final MarkerRange unbounded = new MarkerRange(comparator); final MarkerRange unboundedToNov1 = new MarkerRange(comparator).to(NOV_1); final MarkerRange oct12ToOct15 = new MarkerRange(comparator).from(OCT_12).to(OCT_15); final MarkerRange sept30ToOct15 = new MarkerRange(comparator).from(SEPT_30).to(OCT_15); final MarkerRange oct12ToNov1 = new MarkerRange(comparator).from(OCT_12).to(NOV_1); final MarkerRange sept30ToNov1 = new MarkerRange(comparator).from(SEPT_30).to(NOV_1); final MarkerRange sept30ToUnbounded = new MarkerRange(comparator).from(SEPT_30); final MarkerRange nov1ToUnbounded = new MarkerRange(comparator).from(NOV_1);
@Test public void testIntersection() { final MarkerRange unbounded = new MarkerRange(comparator); final MarkerRange unboundedToNov1 = new MarkerRange(comparator).to(NOV_1); final MarkerRange oct12ToOct15 = new MarkerRange(comparator).from(OCT_12).to(OCT_15); final MarkerRange sept30ToOct15 = new MarkerRange(comparator).from(SEPT_30).to(OCT_15); final MarkerRange oct12ToNov1 = new MarkerRange(comparator).from(OCT_12).to(NOV_1); final MarkerRange sept30ToNov1 = new MarkerRange(comparator).from(SEPT_30).to(NOV_1); final MarkerRange sept30ToUnbounded = new MarkerRange(comparator).from(SEPT_30); final MarkerRange nov1ToUnbounded = new MarkerRange(comparator).from(NOV_1);
.build(); assertIterableEquals(Sets.newHashSet( new MarkerRange(cmp).from(sep0).to(nov0), new MarkerRange(cmp).from(sep1).to(nov1)), c.toKeyRanges()); .build(); assertIterableEquals(Sets.newHashSet( new MarkerRange(cmp).from(sep2).to(nov2), new MarkerRange(cmp).from(sep3).to(nov3), new MarkerRange(cmp).from(sep4).to(nov4), new MarkerRange(cmp).from(sep5).to(nov5)), c.with("component", "com.company.Main", "com.company.SomeClass") .toKeyRanges());