本文整理了Java中com.pholser.junit.quickcheck.generator.Generator
类的一些代码示例,展示了Generator
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Generator
类的具体详情如下:
包路径:com.pholser.junit.quickcheck.generator.Generator
类名称:Generator
[英]Produces values for property parameters.
[中]为特性参数生成值。
代码示例来源:origin: pholser/junit-quickcheck
private Object[] arguments(SourceOfRandomness random, GenerationStatus status) {
Object[] args = new Object[parameters.length];
for (int i = 0; i < args.length; ++i)
args[i] = parameterGenerators.get(i).generate(random, status);
return args;
}
}
代码示例来源:origin: pholser/junit-quickcheck
public List<Object> shrink(Object larger) {
return generator.canShrink(larger)
? new ArrayList<>(generator.shrink(random(), larger))
: emptyList();
}
代码示例来源:origin: pholser/junit-quickcheck
public BigDecimal magnitude(Object value) {
return generator.canShrink(value)
? generator.magnitude(value).abs()
: ZERO;
}
代码示例来源:origin: pholser/junit-quickcheck
/**
* {@inheritDoc}
*
* <p>Generators first ensure that they {@linkplain #canShrink(Object) can
* participate} in shrinking the given value, and if so, they
* {@linkplain #doShrink(SourceOfRandomness, Object) produce shrinks}.</p>
*/
@Override public final List<T> shrink(SourceOfRandomness random, Object larger) {
if (!canShrink(larger)) {
throw new IllegalStateException(
getClass() + " not capable of shrinking " + larger);
}
return doShrink(random, narrow(larger));
}
代码示例来源:origin: pholser/junit-quickcheck
@Override public final <T extends Generator<?>> T make(
Class<T> genType,
Generator<?>... components) {
T generator = instantiate(genType);
generator.provide(this);
generator.configure(genType);
generator.addComponentGenerators(asList(components));
return generator;
}
代码示例来源:origin: pholser/junit-quickcheck
@Override public List<Optional> doShrink(
SourceOfRandomness random,
Optional larger) {
if (!larger.isPresent())
return new ArrayList<>();
List<Optional> shrinks = new ArrayList<>();
shrinks.add(Optional.absent());
shrinks.addAll(
componentGenerators().get(0)
.shrink(random, larger.get())
.stream()
.map(Optional::fromNullable)
.collect(toList()));
return shrinks;
}
代码示例来源:origin: pholser/junit-quickcheck
@Override
public BigDecimal magnitude(Object value) {
return delegate.magnitude(value);
}
}
代码示例来源:origin: pholser/junit-quickcheck
@Test public void shrinkingChoosesAComponentCapableOfShrinkingTheValue() {
stub(first.canShrink(7)).toReturn(true);
stub(second.canShrink(7)).toReturn(false);
stub(third.canShrink(7)).toReturn(true);
when(first.types()).thenReturn(singletonList(Integer.class));
when(first.doShrink(random, 7)).thenReturn(asList(3, 6));
when(random.nextInt(9)).thenReturn(1);
assertEquals(asList(3, 6), composite.shrink(random, 7));
verify(first, atLeastOnce()).doShrink(random, 7);
}
}
代码示例来源:origin: pholser/junit-quickcheck
@Override
public boolean canShrink(Object larger) {
return delegate.canShrink(larger);
}
代码示例来源:origin: pholser/junit-quickcheck
private void applyComponentGenerators(Generator<?> generator, List<Generator<?>> componentGenerators) {
if (generator.hasComponents()) {
if (componentGenerators.isEmpty()) {
List<Generator<?>> substitutes = new ArrayList<>();
Generator<?> zilch = generatorFor(
new ParameterTypeContext(
"Zilch",
null,
getClass().getName(),
token(Zilch.class),
emptyMap())
.allowMixedTypes(true));
for (int i = 0; i < generator.numberOfNeededComponents(); ++i)
substitutes.add(zilch);
generator.addComponentGenerators(substitutes);
} else
generator.addComponentGenerators(componentGenerators);
}
}
代码示例来源:origin: pholser/junit-quickcheck
private void configureLenient(
Class<? extends Annotation> annotationType,
Annotation configuration) {
configure(annotationType, configuration, ex -> {});
}
代码示例来源:origin: pholser/junit-quickcheck
public Generator<?> produceGenerator(ParameterTypeContext parameter) {
Generator<?> generator = generatorFor(parameter);
if (!isPrimitiveType(parameter.annotatedType().getType()) && hasNullableAnnotation(parameter.annotatedElement()))
generator = new NullableGenerator<>(generator);
generator.provide(this);
generator.configure(parameter.annotatedType());
if (parameter.topLevel())
generator.configure(parameter.annotatedElement());
return generator;
}
代码示例来源:origin: pholser/junit-quickcheck
@Override
public void addComponentGenerators(List<Generator<?>> newComponents) {
delegate.addComponentGenerators(newComponents);
}
代码示例来源:origin: pholser/junit-quickcheck
@Override public List<Optional> doShrink(
SourceOfRandomness random,
Optional larger) {
if (!larger.isPresent())
return new ArrayList<>();
List<Optional> shrinks = new ArrayList<>();
shrinks.add(Optional.empty());
shrinks.addAll(
componentGenerators().get(0)
.shrink(random, larger.get())
.stream()
.map(Optional::of)
.collect(toList()));
return shrinks;
}
代码示例来源:origin: pholser/junit-quickcheck
@Override public BigDecimal magnitude(Object value) {
int length = Array.getLength(value);
if (length == 0)
return ZERO;
BigDecimal elementsMagnitude =
IntStream.range(0, length)
.mapToObj(i -> component.magnitude(Array.get(value, i)))
.reduce(ZERO, BigDecimal::add);
return BigDecimal.valueOf(length).multiply(elementsMagnitude);
}
代码示例来源:origin: com.pholser/junit-quickcheck-core
@Override public final <T extends Generator<?>> T make(
Class<T> genType,
Generator<?>... components) {
T generator = instantiate(genType);
generator.provide(this);
generator.configure(genType);
generator.addComponentGenerators(asList(components));
return generator;
}
代码示例来源:origin: pholser/junit-quickcheck
@Override public boolean canShrink(Object larger) {
return composed.stream()
.map(w -> w.item)
.anyMatch(g -> g.canShrink(larger));
}
代码示例来源:origin: com.pholser/junit-quickcheck-core
/**
* {@inheritDoc}
*
* <p>Generators first ensure that they {@linkplain #canShrink(Object) can
* participate} in shrinking the given value, and if so, they
* {@linkplain #doShrink(SourceOfRandomness, Object) produce shrinks}.</p>
*/
@Override public final List<T> shrink(SourceOfRandomness random, Object larger) {
if (!canShrink(larger)) {
throw new IllegalStateException(
getClass() + " not capable of shrinking " + larger);
}
return doShrink(random, narrow(larger));
}
代码示例来源:origin: com.pholser/junit-quickcheck-core
private void applyComponentGenerators(Generator<?> generator, List<Generator<?>> componentGenerators) {
if (generator.hasComponents()) {
if (componentGenerators.isEmpty()) {
List<Generator<?>> substitutes = new ArrayList<>();
Generator<?> zilch = generatorFor(
new ParameterTypeContext(
"Zilch",
null,
getClass().getName(),
token(Zilch.class),
emptyMap())
.allowMixedTypes(true));
for (int i = 0; i < generator.numberOfNeededComponents(); ++i)
substitutes.add(zilch);
generator.addComponentGenerators(substitutes);
} else
generator.addComponentGenerators(componentGenerators);
}
}
代码示例来源:origin: pholser/junit-quickcheck
@Override
public void configure(AnnotatedElement element) {
delegate.configure(element);
}
内容来源于网络,如有侵权,请联系作者删除!