@Override
    public Long next(Object ignored) {
        if (!limitedDomain) {
            return next0();
        }
        return domain
            .stream()
            .skip(random.nextInt(domain.size()))
            .findFirst()
            .orElseThrow(() -> new RuntimeException("Should never happen"));
    }
@Test
    public void testFluctuation() {
        SequenceGenerator generator =
            new SequenceGenerator.Builder()
                .setMin(1L)
                .setMax(100L)
                .setFluctuation(1)
                .build();

        for (int i = 1; i < 10; i++) {
            Long next = generator.next(null);
            assertTrue(i <= next.intValue());
            assertTrue(i * 2 >= next.intValue());
        }
    }