public static <G extends Gene<?, G>, C extends Comparable<? super C>>
	EvolutionResult<G, C> of(
		final Optimize optimize,
		final ISeq<Phenotype<G, C>> population,
		final long generation,
		final long totalGenerations,
		final EvolutionDurations durations,
		final int killCount,
		final int invalidCount,
		final int alterCount
	) {
		return new EvolutionResult<>(
			optimize,
			population,
			generation,
			totalGenerations,
			durations,
			killCount,
			invalidCount,
			alterCount,
			true
		);
	}
Return a new {@code EvolutionResult} object with the given values.

@param optimize the optimization strategy used
@param population the population after the evolution step
@param generation the current generation
@param totalGenerations the overall number of generations
@param durations the timing (meta) information
@param killCount the number of individuals which has been killed
@param invalidCount the number of individuals which has been removed as
       invalid
@param alterCount the number of individuals which has been altered
@param <G> the gene type
@param <C> the fitness type
@return an new evolution result object
@throws java.lang.NullPointerException if one of the parameters is
        {@code null}
jenetics/src/main/java/io/jenetics/engine/EvolutionResult.java