CharacterChromosome extends VariableChromosome<CharacterGene> implements
		CharSequence,
		Serializable { public static CharacterChromosome of( final CharSeq validCharacters, final IntRange lengthRange ) { return new CharacterChromosome( CharacterGene.seq(validCharacters, lengthRange), lengthRange ); } protected  CharacterChromosome(
		final ISeq<CharacterGene> genes,
		final IntRange lengthRange
	); @Override char charAt(final int index); @Override CharacterChromosome subSequence(final int start, final int end); @Override CharacterChromosome newInstance(final ISeq<CharacterGene> genes); @Override CharacterChromosome newInstance(); CharacterChromosome map(final Function<? super char[], char[]> f); @Override int hashCode(); @Override boolean equals(final Object obj); @Override String toString(); char[] toArray(final char[] array); char[] toArray(); static CharacterChromosome of(
		final CharSeq validCharacters,
		final IntRange lengthRange
	); static CharacterChromosome of(final IntRange lengthRange); static CharacterChromosome of(
		final CharSeq validCharacters,
		final int length
	); static CharacterChromosome of(final int length); static CharacterChromosome of(
		final String alleles,
		final CharSeq validChars
	); static CharacterChromosome of(final String alleles);  }
@Test(dataProvider = "genes") public void newCharacterChromosome(final String genes) { final CharSeq characters = new CharSeq("0123456789"); CharacterChromosome chromosome = CharacterChromosome.of(genes, characters); Assert.assertEquals(new String(new StringBuilder(chromosome)), genes); }
@Test(dataProvider = "genes") public void newIllegalCharacterChromosome(final String genes) { final CharSeq characters = new CharSeq("012356789"); CharacterChromosome chromosome = CharacterChromosome.of(genes, characters); Assert.assertFalse(chromosome.isValid(), "Chromosome must not be valid"); Assert.assertEquals(new String(new StringBuilder(chromosome)), genes); }