### Question:
CharacterGene implements
		Gene<Character, CharacterGene>,
		Comparable<CharacterGene>,
		Serializable { @Override public int compareTo(final CharacterGene that) { return Character.compare(_allele, that._allele); } private  CharacterGene(final CharSeq chars, final int index); private  CharacterGene(final char allele, final CharSeq validChars); @Override boolean isValid(); @Override Character allele(); char charValue(); boolean isValidCharacter(final Character allele); CharSeq validChars(); @Override int compareTo(final CharacterGene that); @Override int hashCode(); @Override boolean equals(final Object obj); @Override String toString(); @Override CharacterGene newInstance(); @Override CharacterGene newInstance(final Character allele); static CharacterGene of(final CharSeq validCharacters); static CharacterGene of(final char allele); static CharacterGene of(); static CharacterGene of(
		final char allele,
		final CharSeq validCharacters
	); static final CharSeq DEFAULT_CHARACTERS; }### Answer:
@Test public void testCompareTo() { CharacterGene g1 = CharacterGene.of('1'); CharacterGene g2 = CharacterGene.of('2'); CharacterGene g3 = CharacterGene.of('3'); assertTrue(g1.compareTo(g2) < 0); assertTrue(g2.compareTo(g3) < 0); assertTrue(g3.compareTo(g2) > 0); assertEquals(0, g2.compareTo(g2)); }