Ich schreibe ein Paket für das Experimentieren mit evolutionären Algorithmen, und es versteht sich von selbst, dass es viele stochastische Methoden beinhaltet. Nun möchte ich einige (doc) Tests für dieses Paket schreiben, damit ich überprüfen kann, ob alles funktioniert, aber ich stoße in Situationen, in denen der Test "meistens" wahr sein sollte. Es fühlt sich an, als ob ich mich dem wahrscheinlich in die falsche Richtung nähern würde, aber ich würde trotzdem gerne einige deiner Gedanken dazu hören.Schreibtests für stochastische Funktionen
Zum Beispiel, ich habe so etwas in meinem Doctests:
>>> a = Genome()
>>> b = Genome()
>>> a.mutate()
>>> a != b
True # Well, most of the time.
Implementierung von Tests wie das würde bedeuten, dass der Test wird manchmal fehlschlagen, während alles funktioniert.
Ich lese den Vorschlag, die RNG Samen zu beheben, bevor Tests zu tun, aber dann würde ich dafür sorgen, dass alles funktioniert vor ich den Test schreiben kann, da der Test das erwartete Ergebnis enthalten soll.
Wissen Sie, was Sie am meisten '' 'wollen? Wenn es mindestens 1% ist, können Sie in Ihrer Einheit 100 Antworten generieren und sicherstellen, dass nicht mehr als 1 oder 2 von dem abweichen, was Sie möchten. – Zenon
@Zenon Aber statistisch gesehen ist es manchmal kleiner als dieser Mindestprozentsatz, so dass die Tests immer noch fehlschlagen. – noio
Sie sollten Ihre Tests auf stochastischen Funktionen identifizieren, und wenn einer fehlschlägt, führen Sie den Test ein zweites Mal mit angemessenen Schwellenwerten aus. – Zenon