public abstract Iterator<T> sample(Iterator<T> input);
@TestTemplate
    @RetryOnFailure(times = 3)
    void testReservoirSamplerSampledSize2() {
        RandomSampler<Double> sampler = new ReservoirSamplerWithoutReplacement<>(20000);
        Iterator<Double> sampled = sampler.sample(source.iterator());
        assertThat(getSize(sampled))
                .as(
                        "ReservoirSamplerWithoutReplacement sampled output size should not beyond the source size.")
                .isEqualTo(SOURCE_SIZE);
    }