code: public static <C extends Comparable<? super C>>
  	Predicate<EvolutionResult<?, C>> byFitnessThreshold(final C threshold) {
  		return new FitnessThresholdLimit<>(threshold);
  	}
docs: Return a predicate, which will truncated the evolution stream if the
  best fitness of the current population becomes less than the specified
  threshold and the objective is set to minimize the fitness. This
  predicate also stops the evolution if the best fitness in the current
  population becomes greater than the user-specified fitness threshold when
  the objective is to maximize the fitness.
  
  <pre>{@code
  final Phenotype<DoubleGene, Double> result = engine.stream()
  // Truncate the evolution stream if the best fitness is higher than
  // the given threshold of '2.3'.
  .limit(byFitnessThreshold(2.3))
  // The evolution will stop after maximal 250 generations; guarantees
  // the termination (truncation) of the evolution stream.
  .limit(250)
  .collect(toBestPhenotype());
  }</pre>
  
  @since 3.1
  
  @param threshold the desired threshold
  @param <C> the fitness type
  @return the predicate which truncates the evolution stream based on the
  given {@code threshold}.
  @throws NullPointerException if the given {@code threshold} is
  {@code null}.