def time_to_procreate():
    selected_index = []
    for i in range(0, len(population)):
        random_number = uniform(0, 1.0)
        if random_number < crossover_rate:
            selected_index.append(i)
    for in_list_index, first_parent_index in enumerate(selected_index):
        second_parent_index = 0
        if in_list_index == len(selected_index) - 1:
            second_parent_index = selected_index[0]
        else:
            second_parent_index = selected_index[in_list_index + 1]
        first_parent = population[first_parent_index]
        second_parent = population[second_parent_index]
        random_point_genes = 2
        first_parent_genes = first_parent.give_group_of_gens(
            random_point_genes)
        second_parent_genes = second_parent.data
        second_parent_genes.pop(random_point_genes)
        second_parent_genes.insert(random_point_genes, first_parent_genes)
        son = Chromosome(second_parent_genes, fitness_function_procedure)
        # Checamos si el hijo supera al padre en fitness

        son.calculate_value()
        if son.result > first_parent.result:
            population.pop(first_parent_index)
            population.insert(first_parent_index, son)
import main
from chromosome import Chromosome
main.parse_data()
fitness = main.fitness_function_procedure
chromosome = Chromosome(['1', '101', '10', '10'], fitness)
chromosome.calculate_value()