Angenommen, ich möchte einige Komponententests für die (!!)
-Funktion schreiben.Wie kann QuickCheck angewiesen werden, nur gültige Listenindizes für einen Parameter zu generieren?
my_prop xs n = ...
Ich will n nur gültigen Indizes beschränken, und ich weiß, dass ich so etwas wie
my_prop xs n = (not.null) (drop n xs) ==> ...
tun konnte, aber das macht es so, dass die überwiegende Mehrheit der erzeugten Fälle ungültig ist und weggeworfen erhält . Gibt es eine Möglichkeit, Dinge einzurichten, so dass QuickCheck die xs
Liste zuerst generiert und seinen Wert verwendet, um nur gültige Fälle von n
zu generieren?
Erstellen Sie einen neuen Typ mit einer Liste und einem Int mit einer geeigneten Arbitrary-Instanz. –