public static Generator frequency()

in src/main/java/org/jetbrains/jetCheck/Generator.java [162:178]


  public static <T> Generator<T> frequency(LinkedHashMap<Generator<? extends T>, Integer> alternatives) {
    ArrayList<Generator<? extends T>> keys = new ArrayList<>();
    List<Integer> weights = new ArrayList<>();
    for (Map.Entry<Generator<? extends T>, Integer> entry : alternatives.entrySet()) {
      keys.add(entry.getKey());
      weights.add(entry.getValue());
    }
    if (keys.contains(null) || weights.contains(null)) {
      throw new IllegalArgumentException("Alternatives passed to 'frequency' shouldn't contain nulls");
    }

    IntDistribution distribution = IntDistribution.frequencyDistribution(weights);
    return from(data -> {
      ((AbstractDataStructure) data).changeKind(StructureKind.CHOICE);
      return data.generate(keys.get(((AbstractDataStructure) data).drawInt(distribution)));
    });
  }