in src/main/java/org/jetbrains/jetCheck/Iteration.java [47:88]
private CounterExampleImpl<T> findCounterExample() {
for (int i = 0; i < 100; i++) {
if (i > 0) {
initSeed(random.nextLong());
}
ScheduledFuture<?> printSeeds = session.executor.schedule(
() -> System.out.println("An iteration is running for too long, " + printSeeds()),
1, TimeUnit.MINUTES);
try {
StructureNode node = new StructureNode(new NodeId(session.generator));
T value;
try {
IntSource source = session.parameters.serializedData != null ? session.parameters.serializedData : d -> d.generateInt(random);
value = session.generator.getGeneratorFunction().apply(new GenerativeDataStructure(source, node, sizeHint));
}
catch (CannotSatisfyCondition e) {
continue;
}
catch (DataSerializer.EOFException e) {
session.notifier.eofException();
return null;
}
catch (WrongDataStructure e) {
throw e;
}
catch (Throwable e) {
//noinspection InstanceofCatchParameter
if (e instanceof CannotRestoreValue && session.parameters.serializedData != null) {
throw e;
}
throw new GeneratorException(this, e);
}
if (!session.addGeneratedNode(node)) continue;
return CounterExampleImpl.checkProperty(this, value, node);
} finally {
printSeeds.cancel(false);
}
}
throw new GeneratorException(this, new CannotSatisfyCondition(DATA_IS_DIFFERENT));
}