private void writeObject(final ObjectOutputStream out) throws IOException { out.defaultWriteObject(); out.writeInt(length()); out.writeObject(_validCharacters); for (CharacterGene gene : _genes) { out.writeChar(gene.getAllele()); } }
@Test public void testCharacterGeneCharacter() { CharacterGene gene = CharacterGene.of('4'); assertEquals(Character.valueOf('4'), gene.getAllele()); }
@Test public void testGetCharacter() { CharacterGene gene = CharacterGene.of('6'); assertEquals(Character.valueOf('6'), gene.getAllele()); }
@Test public void testCharacterGene() { CharacterGene gene = CharacterGene.of(); assertTrue(gene.isValidCharacter(gene.getAllele())); }
@Test(invocationCount = 20, successPercentage = 95) public void newInstanceDistribution() { using(new Random(12345), r -> { final CharSeq characters = new CharSeq("0123456789"); final CharacterChromosome chromosome = CharacterChromosome.of(characters, 5000); final Histogram<Long> histogram = Histogram.ofLong(0L, 10L, 10); chromosome.stream() .map(g -> Long.valueOf(g.getAllele().toString())) .forEach(histogram); final double[] expected = dist.uniform(histogram.length()); assertDistribution(histogram, expected); }); }
@Test(invocationCount = 20, successPercentage = 95) public void newInstanceDistribution() { using(new Random(12345), r -> { final CharSeq characters = new CharSeq("0123456789"); final Factory<CharacterGene> factory = CharacterGene.of(characters); final Histogram<Long> histogram = Histogram.ofLong(0L, 10L, 10); final int samples = 100000; for (int i = 0; i < samples; ++i) { final CharacterGene g1 = factory.newInstance(); final CharacterGene g2 = factory.newInstance(); Assert.assertNotSame(g1, g2); histogram.accept(Long.valueOf(g1.getAllele().toString())); histogram.accept(Long.valueOf(g2.getAllele().toString())); } assertUniformDistribution(histogram); }); }