public static IntegerChromosome of(final Iterable<IntegerGene> genes) {
		final ISeq<IntegerGene> values = ISeq.of(genes);
		checkGeneRange(values.stream().map(IntegerGene::range));
		return new IntegerChromosome(values, IntRange.of(values.length()));
	}
Create a new {@code IntegerChromosome} with the given genes.

@since 4.3

@param genes the genes of the chromosome.
@return a new chromosome with the given genes.
@throws NullPointerException if the given {@code genes} are {@code null}
@throws IllegalArgumentException if the of the genes iterable is empty or
        the given {@code genes} doesn't have the same range.
jenetics/src/main/java/io/jenetics/IntegerChromosome.java