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 DereferencingGeneratorTest extends NumberGeneratorTest<Integer, Long> {
@Override
public double getMeanTolerance() {
return 0.1;
}
@Override
public double getDistributionTolerance() {
return 0.01;
}
@Override
public Iterator<Integer> getGeneratorImpl(GeneratorFactory generatorFactory) {
Iterator<Integer> integerSequence1 = generatorFactory.constant(1);
Iterator<Integer> integerSequence2 = generatorFactory.constant(2);
Iterator<Integer> integerSequence3 = generatorFactory.constant(3);
return generatorFactory.discreteDereferencing(Lists.newArrayList(integerSequence1, integerSequence2, integerSequence3));
}
@Override
public Histogram<Integer, Long> getExpectedDistribution() {
Histogram<Integer, Long> expectedDistribution = new Histogram<>(0l);
expectedDistribution.addBucket(new NumberRangeBucket<Integer>(Range.closedOpen(-0.5d, 0.5d)), 0l);
expectedDistribution.addBucket(new NumberRangeBucket<Integer>(Range.closedOpen(0.5d, 1.5d)), 1l);
expectedDistribution.addBucket(new NumberRangeBucket<Integer>(Range.closedOpen(1.5d, 2.5d)), 1l);
expectedDistribution.addBucket(new NumberRangeBucket<Integer>(Range.closedOpen(2.5d, 3.5d)), 1l);
expectedDistribution.addBucket(new NumberRangeBucket<Integer>(Range.closedOpen(3.5d, 4.5d)), 0l);
expectedDistribution.addBucket(new NumberRangeBucket<Integer>(Range.closed(4.5d, 5.5d)), 0l);
return expectedDistribution;
}
@Override
public double getExpectedMean() {
return 1 + (((double) 3 - (double) 1) / 2);
}
}