def test_create2DBinary_default(self): _genome = G2DBinaryString.G2DBinaryString(3, 3) self.assertTrue(hasattr(_genome, 'width')) self.assertTrue(hasattr(_genome, 'height')) self.assertTrue(hasattr(_genome, 'initializator')) self.assertTrue(hasattr(_genome, 'mutator')) self.assertTrue(hasattr(_genome, 'crossover'))
def test_2DBinary_eq(self): _genome1 = G2DBinaryString.G2DBinaryString(3, 2) _genome2 = G2DBinaryString.G2DBinaryString(3, 3) self.assertFalse(_genome1 == _genome2) _genome1 = G2DBinaryString.G2DBinaryString(2, 3) _genome2 = G2DBinaryString.G2DBinaryString(3, 3) self.assertFalse(_genome1 == _genome2) _genome1 = G2DBinaryString.G2DBinaryString(3, 3) _genome2 = G2DBinaryString.G2DBinaryString(3, 3) _genome1.setItem(2, 1, 0) _genome2.setItem(2, 1, 1) self.assertFalse(_genome1 == _genome2) _genome1 = G2DBinaryString.G2DBinaryString(3, 3) _genome2 = G2DBinaryString.G2DBinaryString(3, 3) self.assertTrue(_genome1 == _genome2)
# This function is the evaluation function, we want # to give high score to more zero'ed chromosomes def eval_func(chromosome): score = 0.0 # iterate over the chromosome for i in range(chromosome.getHeight()): for j in range(chromosome.getWidth()): # You can use the chromosome.getItem(i, j) if chromosome[i][j] == 0: score += 0.1 return score # Genome instance genome = G2DBinaryString.G2DBinaryString(8, 5) # The evaluator function (objective function) genome.evaluator.set(eval_func) genome.crossover.set(Crossovers.G2DBinaryStringXSingleHPoint) genome.mutator.set(Mutators.G2DBinaryStringMutatorSwap) # Genetic Algorithm Instance ga = GSimpleGA.GSimpleGA(genome) ga.setGenerations(200) # Do the evolution, with stats dump # frequency of 10 generations ga.evolve(freq_stats=10) # Best individual
def test_2DBinary_clearString(self): _genome = G2DBinaryString.G2DBinaryString(2, 4) _genome.clearString() self.assertEqual(len(_genome.genomeString), _genome.getHeight()) self.assertEqual(len(_genome.genomeString[0]), _genome.getWidth()) self.assertEqual(_genome[1][1], None)
def test_2DBinary_resumeString(self): _genome = G2DBinaryString.G2DBinaryString(3, 3) self.assertIsInstance(_genome.resumeString(), str)
def test_repr(self): _genome = G2DBinaryString.G2DBinaryString(3, 3) self.assertIsInstance(repr(_genome), str)
def test_2DBinary_iter(self): _genome = G2DBinaryString.G2DBinaryString(3, 3) self.assertIsInstance(iter(_genome), Iterable)
def test_2DBinary_setitem(self): _genome = G2DBinaryString.G2DBinaryString(3, 3) _genome.setItem(1, 1, 1) self.assertEqual(_genome.getItem(1, 1), 1) with self.assertRaises(ValueError): _genome.setItem(1, 1, 2)