package com.ldbc.driver.generator;
import com.google.common.collect.Lists;
import com.google.common.collect.Range;
import com.ldbc.driver.util.Bucket.NumberRangeBucket;
import com.ldbc.driver.util.Histogram;
import java.util.Iterator;
public class SizedUniformBytesGeneratorGeneratorTest extends NumberGeneratorTest<Byte, Long> {
@Override
public double getMeanTolerance() {
return 1;
}
@Override
public double getDistributionTolerance() {
return 0.05;
}
@Override
public Iterator<Byte> getGeneratorImpl(GeneratorFactory gf) {
Iterator<Iterator<Byte>> uniformBytesGeneratorGenerator =
gf.limit(
// generate uniform byte generators of maximum length
gf.sizedUniformBytesGenerator(
gf.constant(Long.MAX_VALUE)
),
// generate 100 generators
100
);
// create dereferencing generator that will pull the bytes from the 100 byte generators
return gf.discreteDereferencing(Lists.newArrayList(uniformBytesGeneratorGenerator));
}
@Override
public Histogram<Byte, Long> getExpectedDistribution() {
Histogram<Byte, Long> expectedDistribution = new Histogram<>(0l);
expectedDistribution.addBucket(new NumberRangeBucket<Byte>(Range.closedOpen(-128d, -64d)), 1l);
expectedDistribution.addBucket(new NumberRangeBucket<Byte>(Range.closedOpen(-64d, 0d)), 1l);
expectedDistribution.addBucket(new NumberRangeBucket<Byte>(Range.closedOpen(0d, 64d)), 1l);
expectedDistribution.addBucket(new NumberRangeBucket<Byte>(Range.closed(64d, 128d)), 1l);
return expectedDistribution;
}
@Override
public double getExpectedMean() {
return 0d;
}
}