@Override
    public LocalDate next() {
        if (!hasNext()) {
            throw new NoSuchElementException();
        }
        if (cursor == null) {
            cursor = start;
        } else {
            cursor = cursor.plusDays(increment);
        }
        return cursor;
    }
@Test
    void nextDescendantTest() {
        List<LocalDate> expected = Arrays.asList(LocalDate.of(2021, 1, 3), LocalDate.of(2021, 1, 2), LocalDate.of(2021, 1, 1));
        LocalDateRangeIterator iterator = new LocalDateRangeIterator(after, before);
        IntStream.range(0, 3).forEach(i -> assertEquals(expected.get(i), iterator.next()));
    }