@Test public void testIfFirstSegmentIsInSkipOffset() { final VersionedIntervalTimeline<String, DataSegment> timeline = createTimeline( new SegmentGenerateSpec( Intervals.of("2017-12-02T14:00:00/2017-12-03T00:00:00"), new Period("PT5H"), 40000, 1 ) ); final CompactionSegmentIterator iterator = policy.reset( ImmutableMap.of(DATA_SOURCE, createCompactionConfig(40000, 100, new Period("P1D"))), ImmutableMap.of(DATA_SOURCE, timeline), Collections.emptyMap() ); Assert.assertFalse(iterator.hasNext()); }
@Test public void testIfFirstSegmentOverlapsSkipOffset() { final VersionedIntervalTimeline<String, DataSegment> timeline = createTimeline( new SegmentGenerateSpec( Intervals.of("2017-12-01T23:00:00/2017-12-03T00:00:00"), new Period("PT5H"), 40000, 1 ) ); final CompactionSegmentIterator iterator = policy.reset( ImmutableMap.of(DATA_SOURCE, createCompactionConfig(40000, 100, new Period("P1D"))), ImmutableMap.of(DATA_SOURCE, timeline), Collections.emptyMap() ); Assert.assertFalse(iterator.hasNext()); }
@Test public void testIgnoreSingleSegmentToCompact() { final CompactionSegmentIterator iterator = policy.reset( ImmutableMap.of(DATA_SOURCE, createCompactionConfig(800000, 100, new Period("P1D"))), ImmutableMap.of( DATA_SOURCE, createTimeline( new SegmentGenerateSpec( Intervals.of("2017-12-02T00:00:00/2017-12-03T00:00:00"), new Period("P1D"), 200, 1 ), new SegmentGenerateSpec( Intervals.of("2017-12-01T00:00:00/2017-12-02T00:00:00"), new Period("P1D"), 200, 1 ) ) ), Collections.emptyMap() ); Assert.assertFalse(iterator.hasNext()); }
@Test public void testLargeOffsetAndSmallSegmentInterval() { final Period segmentPeriod = new Period("PT1H"); final CompactionSegmentIterator iterator = policy.reset( ImmutableMap.of(DATA_SOURCE, createCompactionConfig(10000, 100, new Period("P2D"))), ImmutableMap.of( DATA_SOURCE, createTimeline( new SegmentGenerateSpec(Intervals.of("2017-11-16T20:00:00/2017-11-17T04:00:00"), segmentPeriod), new SegmentGenerateSpec(Intervals.of("2017-11-14T00:00:00/2017-11-16T07:00:00"), segmentPeriod) ) ), Collections.emptyMap() ); assertCompactSegmentIntervals( iterator, segmentPeriod, Intervals.of("2017-11-14T00:00:00/2017-11-14T01:00:00"), Intervals.of("2017-11-15T03:00:00/2017-11-15T04:00:00"), true ); }
final VersionedIntervalTimeline<String, DataSegment> timeline = createTimeline( new SegmentGenerateSpec( Intervals.of("2017-12-03T00:00:00/2017-12-04T00:00:00"),
ImmutableMap.of( DATA_SOURCE, createTimeline( new SegmentGenerateSpec( Intervals.of("2017-12-04T11:00:00/2017-12-05T05:00:00"),
@Test public void testSkipUnknownDataSource() { final String unknownDataSource = "unknown"; final Period segmentPeriod = new Period("PT1H"); final CompactionSegmentIterator iterator = policy.reset( ImmutableMap.of( unknownDataSource, createCompactionConfig(10000, 100, new Period("P2D")), DATA_SOURCE, createCompactionConfig(10000, 100, new Period("P2D")) ), ImmutableMap.of( DATA_SOURCE, createTimeline( new SegmentGenerateSpec(Intervals.of("2017-11-16T20:00:00/2017-11-17T04:00:00"), segmentPeriod), new SegmentGenerateSpec(Intervals.of("2017-11-14T00:00:00/2017-11-16T07:00:00"), segmentPeriod) ) ), Collections.emptyMap() ); assertCompactSegmentIntervals( iterator, segmentPeriod, Intervals.of("2017-11-14T00:00:00/2017-11-14T01:00:00"), Intervals.of("2017-11-15T03:00:00/2017-11-15T04:00:00"), true ); }
@Test public void testSmallOffsetAndLargeSegmentInterval() { final Period segmentPeriod = new Period("PT1H"); final CompactionSegmentIterator iterator = policy.reset( ImmutableMap.of(DATA_SOURCE, createCompactionConfig(10000, 100, new Period("PT1M"))), ImmutableMap.of( DATA_SOURCE, createTimeline( new SegmentGenerateSpec(Intervals.of("2017-11-16T20:00:00/2017-11-17T04:00:00"), segmentPeriod), new SegmentGenerateSpec(Intervals.of("2017-11-14T00:00:00/2017-11-16T07:00:00"), segmentPeriod) ) ), Collections.emptyMap() ); assertCompactSegmentIntervals( iterator, segmentPeriod, Intervals.of("2017-11-16T20:00:00/2017-11-16T21:00:00"), Intervals.of("2017-11-17T02:00:00/2017-11-17T03:00:00"), false ); assertCompactSegmentIntervals( iterator, segmentPeriod, Intervals.of("2017-11-14T00:00:00/2017-11-14T01:00:00"), Intervals.of("2017-11-16T06:00:00/2017-11-16T07:00:00"), true ); }
ImmutableMap.of( DATA_SOURCE, createTimeline( new SegmentGenerateSpec(Intervals.of("2017-11-16T20:00:00/2017-11-17T04:00:00"), segmentPeriod),
ImmutableMap.of( DATA_SOURCE, createTimeline( new SegmentGenerateSpec(Intervals.of("2017-11-16T20:00:00/2017-11-17T04:00:00"), segmentPeriod),
ImmutableMap.of( DATA_SOURCE, createTimeline( new SegmentGenerateSpec( Intervals.of("2017-11-17T00:00:00/2017-11-18T03:00:00"),
ImmutableMap.of( DATA_SOURCE, createTimeline( new SegmentGenerateSpec( Intervals.of("2017-12-04T01:00:00/2017-12-05T03:00:00"),
ImmutableMap.of( DATA_SOURCE, createTimeline( new SegmentGenerateSpec(Intervals.of("2017-11-16T20:00:00/2017-11-17T04:00:00"), segmentPeriod), new SegmentGenerateSpec(Intervals.of("2017-11-14T00:00:00/2017-11-16T07:00:00"), segmentPeriod)
ImmutableMap.of( DATA_SOURCE, createTimeline( new SegmentGenerateSpec(Intervals.of("2017-11-16T00:00:00/2017-11-17T00:00:00"), segmentPeriod)