Я сделал несколько генетических алгоритмов; они работают (они быстро находят разумное решение). Но теперь я обнаружил TDD. Есть ли способ написать генетический алгоритм (который в значительной степени зависит от случайных чисел) по методу TDD?
Чтобы задать вопрос более широко, как вы протестируете недетерминированный метод/функцию. Вот что я подумал:
-
Используйте определенное семя. Что не поможет, если я ошибаюсь в коде, в первую очередь, но поможет найти ошибки при рефакторинге.
-
Используйте известный список номеров. Как и выше, но я мог бы выполнить код вручную (это было бы очень утомительно).
-
Используйте постоянное число. По крайней мере, я знаю, чего ожидать. Было бы хорошо убедиться, что кости всегда читают 6, когда RandomFloat (0,1) всегда возвращает 1.
-
Попытайтесь как можно больше перенести не-детерминированный код из GA. что кажется глупым, поскольку это является основой его цели.
Ссылки на очень хорошие книги по тестированию также будут оценены.