Jak powinienem przetestować algorytm genetyczny

Zrobiłem kilka algorytmów genetycznych; działają (szybko znajdują rozsądne rozwiązanie). Ale teraz odkryłemTDD. Czy istnieje sposób na napisaniealgorytm genetyczny (który opiera się w dużej mierze na liczbach losowych) w sposób TDD?

Aby postawić pytanie bardziej ogólnie, w jaki sposób przetestować niedeterministyczną metodę / funkcję. Oto, o czym myślałem:

Użyj określonego materiału siewnego. Co nie pomoże, jeśli przede wszystkim popełnię błąd w kodzie, ale pomoże znaleźć błędy podczas refaktoryzacji.

Użyj znanej listy numerów. Podobny do powyższego, ale mógłbym śledzić kod ręcznie (co byłoby bardzo nużące).

Użyj stałej liczby. Przynajmniej wiem, czego się spodziewać. Dobrze byłoby upewnić się, że kostka zawsze czyta 6, gdy RandomFloat (0,1) zawsze zwraca 1.

Spróbuj przenieść jak najwięcej niedeterministycznego kodu z GA. co wydaje się głupie, ponieważ to jest sedno jego celu.

Doceniono by także linki do bardzo dobrych książek na temat testów.

questionAnswers(10)

yourAnswerToTheQuestion