diff --git a/src/main/java/gr/james/sampling/WatermanSampling.java b/src/main/java/gr/james/sampling/WatermanSampling.java index bafd19c..8710799 100644 --- a/src/main/java/gr/james/sampling/WatermanSampling.java +++ b/src/main/java/gr/james/sampling/WatermanSampling.java @@ -66,4 +66,31 @@ long skipLength(long streamSize, int sampleSize, Random random) { } return skipCount; } + + @Deprecated + private static class WatermanSkipFunction implements SkipFunction { + private final int sampleSize; + private final Random random; + private long streamSize; + + public WatermanSkipFunction(int sampleSize, Random random) { + this.sampleSize = sampleSize; + this.random = random; + this.streamSize = sampleSize; + } + + @Override + public long skip() throws StreamOverflowException { + if (streamSize == Long.MAX_VALUE) { + throw new StreamOverflowException(); + } + streamSize++; + long skipCount = 0; + while (random.nextDouble() * streamSize >= sampleSize && streamSize > 0) { + streamSize++; + skipCount++; + } + return skipCount; + } + } }