def fitness_function(logger, population, ga_evaluator):
    """
    Calls the evaluator to evaluate a given population of strategies.
    Sets the .fitness attribute of each individual.

    Args:
        logger (:obj:`logging.Logger`): A logger to log with
        population (list): List of individuals to evaluate
        ga_evaluator (:obj:`evaluator.Evaluator`): An evaluator object to evaluate with

    Returns:
        list: Population post-evaluation
    """
    if ga_evaluator:
        return ga_evaluator.evaluate(population)

    for ind in population:
        ind.fitness = 0
        logger.info("[%s] Fitness %d: %s", -1, ind.fitness, str(ind))

    return population