@Test public void testRemove() { for (TimelineObjectHolder<String, Integer> holder : timeline.findOvershadowed()) { for (PartitionChunk<Integer> chunk : holder.getObject()) { timeline.remove(holder.getInterval(), holder.getVersion(), chunk); } } Assert.assertTrue(timeline.findOvershadowed().isEmpty()); }
@Test public void testIncompletePartitionDoesNotOvershadow() { testRemove(); add("2011-10-05/2011-10-07", "6", IntegerPartitionChunk.make(null, 10, 0, 60)); Assert.assertTrue("Expected no overshadowed entries", timeline.findOvershadowed().isEmpty()); add("2011-10-05/2011-10-07", "6", IntegerPartitionChunk.make(10, 20, 1, 61)); Assert.assertTrue("Expected no overshadowed entries", timeline.findOvershadowed().isEmpty()); add("2011-10-05/2011-10-07", "6", IntegerPartitionChunk.make(20, null, 2, 62)); assertValues( ImmutableSet.of( createExpected("2011-10-05/2011-10-06", "5", 5) ), timeline.findOvershadowed() ); }
@Test public void testOvershadowingHigherVersionNeverOvershadowedByLower1() { timeline = makeStringIntegerTimeline(); add("2011-04-01/2011-04-09", "1", 1); add("2011-04-03/2011-04-06", "2", 3); add("2011-04-06/2011-04-09", "2", 4); assertValues( ImmutableSet.of(), timeline.findOvershadowed() ); }
@Test public void testOvershadowingHigherVersionNeverOvershadowedByLower2() { timeline = makeStringIntegerTimeline(); add("2011-04-01/2011-04-09", "1", 1); add("2011-04-01/2011-04-03", "2", 2); add("2011-04-06/2011-04-09", "2", 4); assertValues( ImmutableSet.of(), timeline.findOvershadowed() ); }
@Test public void testOvershadowingHigherVersionNeverOvershadowedByLower3() { timeline = makeStringIntegerTimeline(); add("2011-04-01/2011-04-09", "1", 1); add("2011-04-01/2011-04-03", "2", 2); add("2011-04-03/2011-04-06", "2", 3); assertValues( ImmutableSet.of(), timeline.findOvershadowed() ); }
@Test public void testOvershadowingHigherVersionWins4() { timeline = makeStringIntegerTimeline(); add("2011-04-03/2011-04-06", "1", 3); add("2011-04-06/2011-04-09", "1", 4); add("2011-04-01/2011-04-09", "2", 1); assertValues( ImmutableSet.of( createExpected("2011-04-03/2011-04-06", "1", 3), createExpected("2011-04-06/2011-04-09", "1", 4) ), timeline.findOvershadowed() ); }
@Test public void testRemovePartitionMakesIncomplete() { testIncompletePartitionDoesNotOvershadow(); final IntegerPartitionChunk<Integer> chunk = IntegerPartitionChunk.make(null, 10, 0, 60); Assert.assertEquals(chunk, timeline.remove(Intervals.of("2011-10-05/2011-10-07"), "6", chunk)); assertValues( ImmutableList.of(createExpected("2011-10-05/2011-10-06", "5", 5)), timeline.lookup(Intervals.of("2011-10-05/2011-10-07")) ); Assert.assertTrue("Expected no overshadowed entries", timeline.findOvershadowed().isEmpty()); }
for (TimelineObjectHolder<String, DataSegment> holder : timeline.findOvershadowed()) { for (DataSegment dataSegment : holder.getObject().payloads()) { overshadowed.add(dataSegment);
@Test public void testOvershadowingSameIntervalHighVersionWins() { timeline = makeStringIntegerTimeline(); add("2011-04-01/2011-04-09", "1", 1); add("2011-04-01/2011-04-09", "9", 2); add("2011-04-01/2011-04-09", "2", 3); assertValues( Sets.newHashSet( createExpected("2011-04-01/2011-04-09", "2", 3), createExpected("2011-04-01/2011-04-09", "1", 1) ), timeline.findOvershadowed() ); }
@Test public void testOvershadowingHigherVersionWins2() { timeline = makeStringIntegerTimeline(); add("2011-04-01/2011-04-09", "1", 1); add("2011-04-01/2011-04-03", "2", 2); add("2011-04-03/2011-04-06", "2", 3); add("2011-04-06/2011-04-09", "2", 4); assertValues( ImmutableSet.of( createExpected("2011-04-01/2011-04-09", "1", 1) ), timeline.findOvershadowed() ); }
@Test public void testOvershadowingHigherVersionNeverOvershadowedByLower4() { timeline = makeStringIntegerTimeline(); add("2011-04-01/2011-04-09", "2", 1); add("2011-04-01/2011-04-03", "3", 2); add("2011-04-03/2011-04-06", "4", 3); add("2011-04-03/2011-04-06", "1", 3); assertValues( ImmutableSet.of( createExpected("2011-04-03/2011-04-06", "1", 3) ), timeline.findOvershadowed() ); }
@Test public void testOvershadowingSameIntervalSameVersionAllKept() { timeline = makeStringIntegerTimeline(); add("2011-04-01/2011-04-09", "1", 1); add("2011-04-01/2011-04-09", "9", 2); add("2011-04-01/2011-04-09", "2", 3); add("2011-04-01/2011-04-09", "9", 4); assertValues( Sets.newHashSet( createExpected("2011-04-01/2011-04-09", "2", 3), createExpected("2011-04-01/2011-04-09", "1", 1) ), timeline.findOvershadowed() ); }
@Test public void testOverlapOvershadowedSomeComplexOverlapsCantThinkOfBetterName() { timeline = makeStringIntegerTimeline(); add("2011-01-01/2011-01-05", "2", 1); add("2011-01-10/2011-01-15", "2", 2); add("2011-01-03/2011-01-12", "1", 3); add("2011-01-01/2011-01-10", "3", 4); assertValues( Sets.newHashSet( createExpected("2011-01-03/2011-01-12", "1", 3), createExpected("2011-01-01/2011-01-05", "2", 1) ), timeline.findOvershadowed() ); }
timeline.lookup(Intervals.of("2011-10-05/2011-10-07")) ); Assert.assertTrue("Expected no overshadowed entries", timeline.findOvershadowed().isEmpty()); timeline.lookup(Intervals.of("2011-10-05/2011-10-07")) ); Assert.assertTrue("Expected no overshadowed entries", timeline.findOvershadowed().isEmpty()); timeline.lookup(Intervals.of("2011-10-05/2011-10-07")) ); Assert.assertTrue("Expected no overshadowed entries", timeline.findOvershadowed().isEmpty());
@Test public void testOverlapOvershadowedAligned() { timeline = makeStringIntegerTimeline(); add("2011-01-01/2011-01-05", "2", 1); add("2011-01-05/2011-01-10", "2", 2); add("2011-01-01/2011-01-10", "1", 3); add("2011-01-01/2011-01-10", "3", 4); assertValues( Sets.newHashSet( createExpected("2011-01-01/2011-01-05", "2", 1), createExpected("2011-01-05/2011-01-10", "2", 2), createExpected("2011-01-01/2011-01-10", "1", 3) ), timeline.findOvershadowed() ); }
@Test public void testOvershadowingHigherVersionWins1() { timeline = makeStringIntegerTimeline(); add("2011-04-01/2011-04-03", "1", 2); add("2011-04-03/2011-04-06", "1", 3); add("2011-04-06/2011-04-09", "1", 4); add("2011-04-01/2011-04-09", "2", 1); assertValues( ImmutableSet.of( createExpected("2011-04-01/2011-04-03", "1", 2), createExpected("2011-04-03/2011-04-06", "1", 3), createExpected("2011-04-06/2011-04-09", "1", 4) ), timeline.findOvershadowed() ); }
@Test public void testOvershadowingHigherVersionWins3() { timeline = makeStringIntegerTimeline(); add("2011-04-01/2011-04-03", "1", 2); add("2011-04-03/2011-04-06", "1", 3); add("2011-04-09/2011-04-12", "1", 4); add("2011-04-01/2011-04-12", "2", 1); assertValues( Sets.newHashSet( createExpected("2011-04-01/2011-04-03", "1", 2), createExpected("2011-04-03/2011-04-06", "1", 3), createExpected("2011-04-09/2011-04-12", "1", 4) ), timeline.findOvershadowed() ); }
@Test public void testOvershadowingHigherVersionNeverOvershadowedByLower5() { timeline = makeStringIntegerTimeline(); add("2011-04-01/2011-04-12", "2", 1); add("2011-04-01/2011-04-03", "3", 2); add("2011-04-06/2011-04-09", "4", 3); add("2011-04-09/2011-04-12", "1", 3); add("2011-04-03/2011-04-06", "1", 3); assertValues( Sets.newHashSet( createExpected("2011-04-03/2011-04-06", "1", 3), createExpected("2011-04-09/2011-04-12", "1", 3) ), timeline.findOvershadowed() ); }
@Test public void testOverlapOvershadowedThirdContains() { timeline = makeStringIntegerTimeline(); add("2011-01-03/2011-01-06", "1", 1); add("2011-01-09/2011-01-12", "1", 2); add("2011-01-02/2011-01-08", "2", 3); add("2011-01-10/2011-01-16", "2", 4); add("2011-01-01/2011-01-20", "3", 5); assertValues( Sets.newHashSet( createExpected("2011-01-02/2011-01-08", "2", 3), createExpected("2011-01-10/2011-01-16", "2", 4), createExpected("2011-01-03/2011-01-06", "1", 1), createExpected("2011-01-09/2011-01-12", "1", 2) ), timeline.findOvershadowed() ); }
timeline.findOvershadowed() );