Refactor selection, crossover and mutation tests