@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 testTestConsumerFailsOnBadInput() {

        List<Point> testData = testData(0, 1, -1);

        TestConsumer testConsumer = new TestConsumer();

        try {
            for (Point point : testData) {
                testConsumer.accept(point);
            }
            fail("the 3rd point should cause an exception");
        } catch (AssertionError ae) {
            //properly caught the exception (other would have failed)
        }
    }