def test_selectClusterForCombination(self):
     offspring = [10, 10, 10, 10]
     cluster = []
     counter = 0
     for i in offspring:
         c = Cluster()
         c.offspring = i
         c.fitness = float(1/(counter+1))
         cluster.append(c)
         counter += 1
     self.mock_cluster_repository.get_current_clusters = MagicMock(return_value=cluster)
     c = Cluster()
     d = (c, c)
     test_comb = self.genome_selector.select_clusters_for_combination()
     self.assertEqual(type(d), type(self.genome_selector.select_clusters_for_combination()))
     self.assertFalse(
         test_comb[0].__eq__(test_comb[1])
     )
 def test_selectGenomesForDiscarding(self):
     """
     checks if 20% of worst cluster or genomes were selected
     :return:
     """
     cluster = []
     genome = []
     for i in range(0, 4):
         c = Cluster()
         c.offspring = i
         cluster.append(c)
     for i in range(0, 10):
         g = StorageGenome()
         g.fitness = float(1/(i+1))
         genome.append(g)
     self.mock_cluster_repository.get_current_clusters = MagicMock(return_value=cluster)
     self.mock_genome_repository.get_genomes_in_cluster = MagicMock(return_value=genome)
     self.assertEqual(8, len(self.genome_selector.select_genomes_for_discarding()))
    def test_selectGenomesForBreeding_and_selectGenomesForMutation(self):
        offspring = [10, 10, 10, 10]
        cluster = []
        genome = []
        for i in offspring:
            c = Cluster()
            c.offspring = i
            cluster.append(c)
        for i in range(0, 8):
            g = StorageGenome()
            g.fitness = float(1/(i+1))
            genome.append(g)
        g = StorageGenome()

        self.mock_cluster_repository.get_current_clusters = MagicMock(return_value=cluster)
        self.mock_genome_repository.get_genomes_in_cluster = MagicMock(return_value=genome)
        self.assertEqual(8, len(self.genome_selector.select_genomes_for_breeding(0.2)))
        self.assertEqual(type(g), type(self.genome_selector.select_genomes_for_breeding(0.2)[0][0]))
        self.assertEqual(type(g), type(self.genome_selector.select_genomes_for_mutation(0.2)[0]))
        self.assertEqual(8, len(self.genome_selector.select_genomes_for_mutation(0.2)))
 def test_selectClusterCombination(self):
     offspring = [10, 10]
     cluster = []
     genome = []
     for i in offspring:
         c = Cluster()
         c.offspring = i
         cluster.append(c)
     for i in range(0, 8):
         g = StorageGenome()
         g.fitness = float(1/(i+1))
         genome.append(g)
     self.mock_genome_repository.get_genomes_in_cluster = MagicMock(return_value=genome)
     test_comb = self.genome_selector.select_cluster_combinations(cluster[0], cluster[1], 2)
     g = StorageGenome()
     g_type = (g, g)
     g_list = [g_type]
     self.assertEqual(2, len(test_comb))
     self.assertEqual(type(g_list), type(test_comb))
     self.assertEqual(2, len(test_comb[0]))
     self.assertEqual(type(g_type), type(test_comb[0]))