나는 진화론 적 알고리즘을 실험하기위한 패키지를 코딩하고 있으며, 말할 것도없이 많은 확률 론적 방법을 포함하고있다. 이제이 패키지에 대한 (doc) 테스트를 작성하여 모든 것이 작동하는지 확인할 수 있지만 테스트가 단순히 "대부분의 시간"에 해당해야하는 상황에 처하게됩니다. 아마 내가 잘못된 방향으로 접근하고있는 것처럼 느껴지 겠지만, 이것에 대한 여러분의 생각을 듣고 싶습니다. 그런확률 론적 함수에 대한 테스트 작성하기
>>> a = Genome()
>>> b = Genome()
>>> a.mutate()
>>> a != b
True # Well, most of the time.
구현 테스트는 테스트가 때때로 모든 것이 작동하는 동안 실패 할 것을 의미 :
예를 들어, 내 doctest를이 같은 뭔가가있다.
나는 테스트를 수행하기 전에 RNG 종자를 해결하기 위해 제안을 읽을 수 있지만 그때는 모든 테스트가 예상 결과를 포함해야하기 때문에 내가 테스트를 쓸 수 전에 작동하는지 확인해야합니다.
'대부분의 시간'으로 원하는 것을 알고 있습니까? 그것이 1 % 이상이면, 당신은 당신의 유닛에서 100 개의 답을 생성 할 수 있고, 당신이 원하는 것과 1 또는 2를 넘지 않도록 할 수 있습니다. – Zenon
@ Zenon 그러나 통계적으로, 때때로 그 최소 백분율 이상이 될 수 있기 때문에 테스트가 여전히 실패 할 수 있습니다. – noio
확률 론적 기능에 대한 테스트를 식별해야하며, 실패한 경우 적절한 임계 값으로 테스트를 다시 실행하십시오. – Zenon