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)));
});
}