private CounterExampleImpl findCounterExample()

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