@Test
public void testRemove_manySamples() {

    sampleList.add(createSamplingPoint(1000001510L, 1000000000L));      // removed
    sampleList.add(createSamplingPoint(1000000000L, 1000000998L));      // kept
    sampleList.add(createSamplingPoint(1000001000L, 1000001895L));      // kept
    sampleList.add(createSamplingPoint(1000001000L, 1000002023L));      // removed
    sampleList.add(createSamplingPoint(1000002000L, 1000001000L));      // kept
    sampleList.add(createSamplingPoint(1000003000L, 1000004010L));      // removed
    final List<SamplingPoint> cleanedList = remover.removeSamples(sampleList, 1000L);
    assertEquals(3, cleanedList.size());
    SamplingPoint cleanedPoint = cleanedList.get(0);
    assertEquals(1000000000L, cleanedPoint.getReferenceTime());
    assertEquals(1000000998L, cleanedPoint.getReference2Time());
    cleanedPoint = cleanedList.get(1);
    assertEquals(1000001000L, cleanedPoint.getReferenceTime());
    assertEquals(1000001895L, cleanedPoint.getReference2Time());
    cleanedPoint = cleanedList.get(2);
    assertEquals(1000002000L, cleanedPoint.getReferenceTime());
    assertEquals(1000001000L, cleanedPoint.getReference2Time());
}