def test_crossover_genes(self): """ given the following ['5 + 5 * 5 + 5 * (5) - 5', '5 + 5 + 5 + (f(5) / 5 + 5)'] the first three operators are crossovers. """ genes = ['5 + 5 * 5 + 5 * (5) - 5', '5 + 5 + 5 + (f(5) / 5 + 5)'] print six_fives.crossover_genes(genes) mam, dad = genes print six_fives.find_crossover_points(mam) print six_fives.find_crossover_points(dad)
def test_find_crossover_points(self): """ Find the potential crossover points in an equation. Any operater that is not inside parenthesis is a potential crossover. """ # There are 5 crossovers here. gene = "5 + f(5) * ff(5) / 5 + 5 - ff(5)" self.assertEqual(len(six_fives.find_crossover_points(gene)), 5) # There are 3 crossovers here. gene = "(5 + f(5)) * ff(5) / (5 + 5) - ff(5)" self.assertEqual(len(six_fives.find_crossover_points(gene)), 3) # There are 0 crossovers here. gene = "(5 + f(5) * ff(5) / 5 + 5 - ff(5))" self.assertEqual(len(six_fives.find_crossover_points(gene)), 0)