1 package org.jgap.audit; 2 3 import java.util.*; 4 import org.jgap.*; 5 import org.jgap.event.*; 6 import org.jgap.impl.*; 7 import junit.framework.*; 8 9 15 public class PermutingConfigurationTest 16 extends JGAPTestCase { 17 18 private static final String CVS_REVISION = "$Revision: 1.5 $"; 19 20 public void setUp() { 21 super.setUp(); 22 Configuration.reset(); 23 } 24 25 public static Test suite() { 26 TestSuite suite = new TestSuite(PermutingConfigurationTest.class); 27 return suite; 28 } 29 30 39 public void testConstruct_0() 40 throws Exception { 41 Configuration conf1 = new DefaultConfiguration(); 42 new PermutingConfiguration(conf1); 43 } 44 45 51 public void testConstruct_1() 52 throws Exception { 53 Configuration conf1 = new DefaultConfiguration(); 54 conf1.setFitnessFunction(new StaticFitnessFunction(0.5d)); 55 PermutingConfiguration conf = new PermutingConfiguration(conf1); 56 assertEquals(StaticFitnessFunction.class, 57 conf.getFitnessFunction().getClass()); 58 assertEquals(EventManager.class, conf.getEventManager().getClass()); 59 assertEquals(DefaultFitnessEvaluator.class, 60 conf.getFitnessEvaluator().getClass()); 61 assertEquals(0, conf.getNaturalSelectorsSize(true)); 62 assertEquals(StockRandomGenerator.class, 63 conf.getRandomGenerator().getClass()); 64 assertEquals(ChromosomePool.class, conf.getChromosomePool().getClass()); 65 assertEquals(0, conf.getGeneticOperators().size()); 66 assertNull(conf.getBulkFitnessFunction()); 67 } 68 69 77 public void testPermute_0() 78 throws Exception { 79 Map cache = new Hashtable(); 80 Configuration conf1 = new DefaultConfiguration(); 81 PermutingConfiguration conf = new PermutingConfiguration(conf1); 82 conf.addRandomGeneratorSlot(new StockRandomGenerator()); 84 conf.addRandomGeneratorSlot(new GaussianRandomGenerator()); 85 conf.addNaturalSelectorSlot(new BestChromosomesSelector(conf)); 87 conf.addNaturalSelectorSlot(new WeightedRouletteSelector(conf)); 88 conf.addGeneticOperatorSlot(new MutationOperator(conf)); 90 conf.addGeneticOperatorSlot(new CrossoverOperator(conf)); 91 conf.addFitnessFunctionSlot(new StaticFitnessFunction(0.5d)); 93 assertTrue(conf.hasNext()); 94 Configuration c; 95 for (int i = 0; i < 18; i++) { c = conf.next(); 97 assertNotNull(c); 98 int hash = c.getRandomGenerator().hashCode() 100 + c.getFitnessFunction().hashCode(); 101 for (int j = 0; j < c.getNaturalSelectorsSize(true); j++) { 102 hash += c.getNaturalSelector(true, j).hashCode(); 103 } 104 for (int j = 0; j < c.getGeneticOperators().size(); j++) { 105 hash += c.getGeneticOperators().get(j).hashCode(); 106 } 107 Integer hashI = new Integer (hash); 108 assertFalse(cache.containsKey(hashI)); 109 cache.put(hashI, hashI); 110 } 111 assertFalse(conf.hasNext()); 112 } 113 114 121 public void testPermute_1() 122 throws Exception { 123 Configuration conf1 = new DefaultConfiguration(); 124 conf1.setChromosomePool(null); 125 conf1.setFitnessFunction(new StaticFitnessFunction(0.5d)); 126 PermutingConfiguration conf = new PermutingConfiguration(conf1); 127 assertFalse(conf.hasNext()); 128 conf.addFitnessFunctionSlot(new StaticFitnessFunction(0.5d)); 129 conf.addRandomGeneratorSlot(new StockRandomGenerator()); 130 conf.addNaturalSelectorSlot(new BestChromosomesSelector(conf)); 131 conf.addGeneticOperatorSlot(new MutationOperator(conf)); 132 assertTrue(conf.hasNext()); 133 Configuration c = conf.next(); 134 assertNull(c.getChromosomePool()); 135 } 136 137 144 public void testNotSupported_1() 145 throws Exception { 146 Configuration conf1 = new DefaultConfiguration(); 147 conf1.setFitnessFunction(new StaticFitnessFunction(0.5d)); 148 PermutingConfiguration conf = new PermutingConfiguration(conf1); 149 try { 150 conf.addNaturalSelector(null, true); 151 fail(); 152 } catch (UnsupportedOperationException uex) { 153 ; } 155 try { 156 conf.addGeneticOperator(null); 157 fail(); 158 } catch (UnsupportedOperationException uex) { 159 ; } 161 } 162 } 163 | Popular Tags |