Mam proste definicji typu:Jak wygenerować dowolne instancje typu prostego dla QuickCheck
data Cell = Cell {
x :: Int,
y :: Int
} deriving (Show)
Nie mogę korzystać Cell
jako wejście do nieruchomości QuickCheck, przypuszczalnie dlatego QuickCheck nie wie, w jaki sposób do generowania wartości Komórki.
Moje zrozumienie polega na tym, że muszę sprawić, że Cell stanie się egzemplarzem typu Arbitrary
.
Jak to zrobić, na przykład, czy chciałbym wygenerować komórkę z losowymi dodatnimi wartościami dla xi y?
To gdzie ja * naprawdę * lubią używać składni zamiast aplikacyjnych. –
Należy również rozważyć napisanie implementacji dla 'shrink'. Może mniej ważne, ale w niektórych przypadkach oszczędza tyle wysiłku. –