1 10 package org.jgap.impl; 11 12 import java.util.*; 13 import org.jgap.*; 14 import junit.framework.*; 15 16 22 public class BestChromosomesSelectorTest 23 extends JGAPTestCase { 24 25 private final static String CVS_REVISION = "$Revision: 1.31 $"; 26 27 public static Test suite() { 28 TestSuite suite = new TestSuite(BestChromosomesSelectorTest.class); 29 return suite; 30 } 31 32 38 public void testConstruct_0() 39 throws Exception { 40 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 41 Boolean needsSorting = (Boolean ) privateAccessor.getField(selector, 42 "m_needsSorting"); 43 assertEquals(Boolean.FALSE, needsSorting); 44 assertTrue(selector.returnsUniqueChromosomes()); 45 assertFalse(selector.getDoubletteChromosomesAllowed()); 46 Object fitnessValueComparator = privateAccessor.getField(selector, 47 "m_fitnessValueComparator"); 48 assertTrue(fitnessValueComparator != null); 49 } 50 51 57 public void testConstruct_3() 58 throws Exception { 59 Genotype.setStaticConfiguration(conf); 60 BestChromosomesSelector op = new BestChromosomesSelector(); 61 assertSame(conf, op.getConfiguration()); 62 } 63 64 70 public void testDoubletteChromosomesAllowed_0() 71 throws Exception { 72 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 73 selector.setDoubletteChromosomesAllowed(true); 74 assertTrue(selector.getDoubletteChromosomesAllowed()); 75 selector.setDoubletteChromosomesAllowed(false); 76 assertFalse(selector.getDoubletteChromosomesAllowed()); 77 selector.setDoubletteChromosomesAllowed(true); 78 assertTrue(selector.getDoubletteChromosomesAllowed()); 79 selector.setDoubletteChromosomesAllowed(true); 80 assertTrue(selector.getDoubletteChromosomesAllowed()); 81 } 82 83 89 public void testAdd_0() 90 throws Exception { 91 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 92 Gene gene = new BooleanGene(conf); 93 Chromosome chrom = new Chromosome(conf, gene, 5); 94 selector.add(chrom); 95 Boolean needsSorting = (Boolean ) privateAccessor.getField(selector, 96 "m_needsSorting"); 97 assertEquals(Boolean.TRUE, needsSorting); 98 List chromosomes = ( (Population) privateAccessor.getField(selector, 99 "m_chromosomes")).getChromosomes(); 100 assertEquals(1, chromosomes.size()); 101 assertEquals(chrom, chromosomes.get(0)); 102 selector.add(chrom); 103 assertEquals(chrom, chromosomes.get(0)); 104 selector.setDoubletteChromosomesAllowed(false); 107 assertEquals(1, chromosomes.size()); 108 selector.setDoubletteChromosomesAllowed(true); 109 selector.add(chrom); 110 assertEquals(2, chromosomes.size()); 111 } 112 113 120 public void testSelect_0() 121 throws Exception { 122 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 123 Gene gene = new IntegerGene(conf); 124 gene.setAllele(new Integer (444)); 125 Chromosome secondBestChrom = new Chromosome(conf, gene, 3); 126 secondBestChrom.setFitnessValue(11); 127 selector.add(secondBestChrom); 128 gene = new BooleanGene(conf); 129 gene.setAllele(Boolean.valueOf(false)); 130 Chromosome bestChrom = new Chromosome(conf, gene, 3); 131 bestChrom.setFitnessValue(12); 132 selector.add(bestChrom); 133 selector.select(1, null, new Population(conf)); 134 } 135 136 144 public void testSelect_1() 145 throws Exception { 146 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 147 Gene gene = new BooleanGene(conf); 150 gene.setAllele(Boolean.valueOf(true)); 151 Chromosome thirdBestChrom = new Chromosome(conf, gene, 7); 152 thirdBestChrom.setFitnessValue(10); 153 selector.add(thirdBestChrom); 154 gene = new BooleanGene(conf); 157 gene.setAllele(Boolean.valueOf(false)); 158 Chromosome bestChrom = new Chromosome(conf, gene, 3); 159 bestChrom.setFitnessValue(12); 160 selector.add(bestChrom); 161 gene = new IntegerGene(conf); 164 gene.setAllele(new Integer (444)); 165 Chromosome secondBestChrom = new Chromosome(conf, gene, 3); 166 secondBestChrom.setFitnessValue(11); 167 selector.add(secondBestChrom); 168 Population pop = new Population(conf); 171 selector.select(1, null, pop); 172 IChromosome[] bestChroms = pop.toChromosomes(); 173 assertEquals(1, bestChroms.length); 174 assertEquals(bestChrom, bestChroms[0]); 175 selector.setOriginalRate(1.0d); 176 pop.getChromosomes().clear(); 179 selector.select(3, null, pop); 180 bestChroms = pop.toChromosomes(); 181 assertEquals(3, bestChroms.length); 182 assertEquals(bestChrom, bestChroms[0]); 183 assertEquals(secondBestChrom, bestChroms[1]); 184 assertEquals(thirdBestChrom, bestChroms[2]); 185 } 186 187 195 public void testSelect_2() 196 throws Exception { 197 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 198 Gene gene = new BooleanGene(conf); 201 gene.setAllele(Boolean.valueOf(true)); 202 Chromosome thirdBestChrom = new Chromosome(conf, gene, 7); 203 thirdBestChrom.setFitnessValue(10); 204 selector.add(thirdBestChrom); 205 gene = new BooleanGene(conf); 208 gene.setAllele(Boolean.valueOf(false)); 209 Chromosome bestChrom = new Chromosome(conf, gene, 3); 210 bestChrom.setFitnessValue(12); 211 selector.add(bestChrom); 212 Population pop = new Population(conf); 215 selector.select(1, null, pop); 216 IChromosome[] bestChroms = pop.toChromosomes(); 217 assertEquals(1, bestChroms.length); 218 assertEquals(bestChrom, bestChroms[0]); 219 selector.setOriginalRate(1.0d); 220 pop.getChromosomes().clear(); 224 selector.select(30, null, pop); 225 bestChroms = pop.toChromosomes(); 226 assertEquals(2, bestChroms.length); 227 assertEquals(bestChrom, bestChroms[0]); 228 assertEquals(thirdBestChrom, bestChroms[1]); 229 assertSame(bestChrom, bestChroms[0]); 230 } 231 232 239 public void testSelect_3() 240 throws Exception { 241 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 242 Gene gene = new BooleanGene(conf); 245 gene.setAllele(Boolean.valueOf(true)); 246 Chromosome thirdBestChrom = new Chromosome(conf, gene, 7); 247 thirdBestChrom.setFitnessValue(10); 248 selector.add(thirdBestChrom); 249 gene = new BooleanGene(conf); 252 gene.setAllele(Boolean.valueOf(false)); 253 Chromosome bestChrom = new Chromosome(conf, gene, 3); 254 bestChrom.setFitnessValue(12); 255 selector.add(bestChrom); 256 selector.setOriginalRate(1.0d); 257 Population pop = new Population(conf); 261 selector.select(30, null, pop); 262 Population bestChroms = pop; 263 Population chromosomes = (Population) privateAccessor.getField(selector, 264 "m_chromosomes"); 265 assertTrue(bestChroms.equals(chromosomes)); 266 } 267 268 276 public void testSelect_4() 277 throws Exception { 278 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 279 selector.setDoubletteChromosomesAllowed(true); 280 selector.setOriginalRate(0.3d); 284 Gene gene = new BooleanGene(conf); 287 gene.setAllele(Boolean.valueOf(true)); 288 Chromosome thirdBestChrom = new Chromosome(conf, gene, 7); 289 thirdBestChrom.setFitnessValue(10); 290 selector.add(thirdBestChrom); 291 gene = new BooleanGene(conf); 294 gene.setAllele(Boolean.valueOf(false)); 295 Chromosome bestChrom = new Chromosome(conf, gene, 3); 296 bestChrom.setFitnessValue(12); 297 selector.add(bestChrom); 298 gene = new IntegerGene(conf); 301 gene.setAllele(new Integer (444)); 302 Chromosome secondBestChrom = new Chromosome(conf, gene, 3); 303 secondBestChrom.setFitnessValue(11); 304 selector.add(secondBestChrom); 305 Population pop = new Population(conf); 308 selector.select(1, null, pop); 309 IChromosome[] bestChroms = pop.toChromosomes(); 310 assertEquals(1, bestChroms.length); 311 assertEquals(bestChrom, bestChroms[0]); 312 pop.getChromosomes().clear(); 315 selector.select(4, null, pop); 316 bestChroms = pop.toChromosomes(); 317 assertEquals(4, bestChroms.length); 318 assertEquals(bestChrom, bestChroms[0]); 319 assertEquals(bestChrom, bestChroms[1]); assertEquals(secondBestChrom, bestChroms[2]); 321 assertEquals(thirdBestChrom, bestChroms[3]); 322 assertSame(bestChroms[0], bestChroms[1]); 324 pop.getChromosomes().clear(); 327 selector.setOriginalRate(1.0d); 328 selector.select(4, null, pop); 329 bestChroms = pop.toChromosomes(); 330 assertEquals(4, bestChroms.length); 331 assertEquals(bestChrom, bestChroms[0]); 332 assertEquals(secondBestChrom, bestChroms[1]); 333 assertEquals(thirdBestChrom, bestChroms[2]); 334 assertEquals(bestChrom, bestChroms[3]); 335 } 336 337 343 public void testEmpty_0() 344 throws Exception { 345 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 346 Gene gene = new BooleanGene(conf); 347 Chromosome chrom = new Chromosome(conf, gene, 5); 348 selector.add(chrom); 349 selector.empty(); 350 Boolean needsSorting = (Boolean ) privateAccessor.getField(selector, 351 "m_needsSorting"); 352 assertEquals(Boolean.FALSE, needsSorting); 353 List chromosomes = ( (Population) privateAccessor.getField(selector, 354 "m_chromosomes")).getChromosomes(); 355 assertEquals(0, chromosomes.size()); 356 } 357 358 365 public void testEmpty_1() 366 throws Exception { 367 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 368 Gene gene = new BooleanGene(conf); 369 Chromosome chrom = new Chromosome(conf, gene, 5); 370 selector.add(chrom); 371 Population popNew = new Population(conf); 372 selector.select(1, null, popNew); 373 selector.empty(); 374 assertEquals(1, popNew.size()); 375 assertNotNull(popNew.getChromosome(0)); 376 } 377 378 386 public void testEmpty_2() 387 throws Exception { 388 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 389 Gene gene = new BooleanGene(conf); 390 Chromosome chrom = new Chromosome(conf, gene, 5); 391 Population pop = new Population(conf, 1); 392 pop.addChromosome(chrom); 393 Population popNew = new Population(conf); 394 selector.select(1, pop, popNew); 395 selector.empty(); 396 assertEquals(1, popNew.size()); 397 assertNotNull(popNew.getChromosome(0)); 398 } 399 400 406 public void testSetOriginalRate_0() 407 throws Exception { 408 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 409 try { 410 selector.setOriginalRate(1.01d); 411 fail(); 412 } 413 catch (IllegalArgumentException iex) { 414 ; } 416 } 417 418 424 public void testSetOriginalRate_0_1() 425 throws Exception { 426 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 427 try { 428 selector.setOriginalRate( -0.1d); 429 fail(); 430 } 431 catch (IllegalArgumentException iex) { 432 ; } 434 } 435 436 442 public void testSetOriginalRate_1() 443 throws Exception { 444 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 445 selector.setOriginalRate(0.3d); 446 assertEquals(0.3d, selector.getOriginalRate(), DELTA); 447 } 448 449 455 public void testReturnsUnique_0() 456 throws Exception { 457 BestChromosomesSelector selector = new BestChromosomesSelector(conf); 458 assertTrue(selector.returnsUniqueChromosomes()); 459 } 460 } 461 | Popular Tags |