/* * This file is part of JGAP. * * JGAP offers a dual license model containing the LGPL as well as the MPL. * * For licensing information please see the file license.txt included with JGAP * or have a look at the top of class org.jgap.Chromosome which representatively * includes the JGAP license policy applicable for any file delivered with JGAP. */ package org.jgap.impl; import org.jgap.*; import org.jgap.distr.*; import junit.framework.*; /** * Tests the FittestPopulationMerger class. * * @author Klaus Meffert * @since 2.0 */ public class FittestPopulationMergerTest extends JGAPTestCase { /** String containing the CVS revision. Read out via reflection!*/ private final static String CVS_REVISION = "$Revision: 1.10 $"; public static Test suite() { TestSuite suite = new TestSuite(FittestPopulationMergerTest.class); return suite; } /** * Test if construction possible * * @author Klaus Meffert * @since 2.1 */ public void testConstruct_0() { new FittestPopulationMerger(); } /** * @throws Exception * * @author Klaus Meffert * @since 2.1 */ public void testMergePopulations_0() throws Exception { Gene gene = new BooleanGene(conf); Chromosome chrom = new Chromosome(conf, gene, 4); chrom.setFitnessValue(5); Chromosome[] chroms1 = new Chromosome[3]; chroms1[0] = chrom; chrom = new Chromosome(conf, gene, 1); chrom.setFitnessValue(7); chroms1[1] = chrom; chrom = new Chromosome(conf, gene, 1); chrom.setFitnessValue(2); chroms1[2] = chrom; Chromosome[] chroms2 = new Chromosome[4]; chrom = new Chromosome(conf, gene, 1); chrom.setFitnessValue(4); chroms2[0] = chrom; chrom = new Chromosome(conf, gene, 1); chrom.setFitnessValue(7); chroms2[1] = chrom; chrom = new Chromosome(conf, gene, 1); chrom.setFitnessValue(1); chroms2[2] = chrom; chrom = new Chromosome(conf, gene, 1); chrom.setFitnessValue(10); chroms2[3] = chrom; Population pop1 = new Population(conf, chroms1); Population pop2 = new Population(conf, chroms2); IPopulationMerger merger = new FittestPopulationMerger(); Population result = merger.mergePopulations(pop1, pop2, 4); assertEquals(4, result.size()); assertEquals(10.0d, result.getChromosome(0).getFitnessValue(), DELTA); assertEquals(7.0d, result.getChromosome(1).getFitnessValue(), DELTA); assertEquals(7.0d, result.getChromosome(2).getFitnessValue(), DELTA); assertEquals(5.0d, result.getChromosome(3).getFitnessValue(), DELTA); } }