Mamy dwie funkcje, które porównują 2 różne funkcje power
i zwracają wartość true, jeśli zwracają tę samą wartość (na tym samym wejściu). Następnie mamy 2 inne funkcje, które testują te funkcje na 2 listach, aby zobaczyć, czy istnieje jakaś wartość, która nie zwraca true.Generuj tylko dodatnie liczby całkowite za pomocą QuickCheck
Zamiast używać list o numerach od [1..100]
, chcielibyśmy skorzystać z funkcji quickcheck. Więc możliwe jest szybkie sprawdzenie, aby tylko zwracać liczby całkowite.
Kod:
comparePower1 :: Integer -> Integer -> Bool
comparePower1 n k = power n k == power1 n k
comparePower2 :: Integer -> Integer -> Bool
comparePower2 n k = power n k == power2 n k
testing1 = and [comparePower1 n k | n <- [0..100], k <- [0..100]]
testing2 = and [comparePower2 n k | n <- [0..100], k <- [0..100]]
może będzie http://stackoverflow.com/questions/12466580/how-to-use-modifiers-with-quickcheck-positive-in-my-case pomóc? –
@TomaszLewowski Niezupełnie. Nie rozumiem tej klasy/definicji '(Integral a, Show a, Read a) => ...' –
jak używać modyfikatora 'suchThat' dla generatora? –