com.pholser.junit.quickcheck.generator.Generator类的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(6.8k)|赞(0)|评价(0)|浏览(137)

本文整理了Java中com.pholser.junit.quickcheck.generator.Generator类的一些代码示例,展示了Generator类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Generator类的具体详情如下:
包路径:com.pholser.junit.quickcheck.generator.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);
}

相关文章