def add_cluster_with_representative(self, genome_id: ObjectId):

        cluster = Cluster()
        cluster._id = ObjectId("00000000000000000000000"+str(self.next_id))
        cluster.representative = genome_id
        cluster.fitness = int(str(genome_id))
        self.clusters.append(cluster)
        self.next_id += 1
 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_getClusterAreaSortedByFitness(self):
        unsorted = [0.0, 1.0, 2.4, 0.4, 0.9, 0.12, 4.32, 3.2, 5.1, 0.55]
        chosen = [0.4, 0.55, 0.9, 1.0, 2.4, 3.2]
        discard = [0.0, 0.12]
        cluster = []
        cluster_chosen = []
        cluster_discard = []
        for i in unsorted:
            c = Cluster()
            c.fitness = i
            cluster.append(c)
            if i in chosen:
                cluster_chosen.append(c)
            if i in discard:
                cluster_discard.append(c)
        self.mock_cluster_repository.get_current_clusters = MagicMock(return_value=cluster)

        cluster_chosen.sort(key=lambda x: x.fitness)

        self.assertListEqual(cluster_chosen, self.genome_selector.get_cluster_area_sorted_by_fitness(0.2, 0.8))
        self.assertListEqual(cluster_discard, self.genome_selector.select_clusters_for_discarding())