Como devo testar um algoritmo genético

Eu fiz alguns algoritmos genéticos; eles trabalham (eles encontram uma solução razoável rapidamente). Mas agora descobriTDD. Existe uma maneira de escrever umalgoritmo genético (que depende muito de números aleatórios) de uma maneira TDD?

Para colocar a questão de maneira mais geral, Como você testa um método / função não determinista? Aqui está o que eu pensei:

Use uma semente específica. O que não ajudará se eu cometer um erro no código em primeiro lugar, mas ajudará a encontrar erros ao refatorar.

Use uma lista conhecida de números. Semelhante ao acima, mas eu poderia seguir o código através de mão (o que seria muito tedioso).

Use um número constante. Pelo menos eu sei o que esperar. Seria bom garantir que um dado sempre leia 6 quando RandomFloat (0,1) sempre retorna 1.

Tente mover o máximo possível do código não determinístico do GA. o que parece bobo, já que esse é o núcleo do seu propósito.

Links para livros muito bons sobre testes também seriam apreciados.

questionAnswers(10)

yourAnswerToTheQuestion