@Override
    public void accept(T newPoint) {

        considerAdvancingCurrentTime(newPoint.time());

        if (newPoint.time().isBefore(currentTime)) {
            lastDroppedPoint = newPoint;
            rejectedPointHandler.accept(newPoint);
        } else {
            targetPointConsumer.accept(newPoint);
        }
    }
@Test
    public void testSkippedAreAvailableInLastSkippedPoint() {

        TestConsumer testConsumer = new TestConsumer();
        ConsumingLinkedList<Point> rejectionConsumer = newConsumingLinkedList();

        StrictTimeSortEnforcer<Point> sorted = new StrictTimeSortEnforcer<>(
            testConsumer,
            rejectionConsumer
        );

        //only points with indice 0, 1, 3, 5, 6 should be delivered
        List<Point> testData = testData(0, 1, -1, 2, -3, 3, 4, -1, 3);

        sorted.accept(testData.get(0));
        sorted.accept(testData.get(1));
        sorted.accept(testData.get(2)); //this point should be skipped

        assertEquals(rejectionConsumer.getLast(), testData.get(2));

        sorted.accept(testData.get(3));
        sorted.accept(testData.get(4));  //this point should be skipped

        assertEquals(rejectionConsumer.getLast(), testData.get(4));

        sorted.accept(testData.get(5));
        sorted.accept(testData.get(6));
        sorted.accept(testData.get(7));  //this point should be skipped

        assertEquals(rejectionConsumer.getLast(), testData.get(7));

        sorted.accept(testData.get(8));  //this point should be skipped

        assertEquals(rejectionConsumer.getLast(), testData.get(8));
    }