@Override
    public BigDecimal next() {
        if (!hasNext()) {
            throw new NoSuchElementException();
        }
        if (cursor == null) {
            cursor = start;
        } else {
            cursor = cursor.add(increment);
        }
        return cursor;
    }
@Test
    void nextDescendantTest() {
        BigDecimal start = BigDecimal.valueOf(3);
        BigDecimal end = BigDecimal.valueOf(1);
        List<BigDecimal> expected = Arrays.asList(BigDecimal.valueOf(3), BigDecimal.valueOf(2), BigDecimal.valueOf(1));
        BigDecimalRangeIterator iterator = new BigDecimalRangeIterator(start, end);
        IntStream.range(0, 3).forEach(i -> assertEquals(expected.get(i), iterator.next()));
    }