Итак, я изучаю Haskell, у меня есть задача протестировать различные части кода, который я написал для университета. Я хотел использовать quickCheck prop_powers'
для тестирования, но продолжаю получать сообщение «Не удалось найти модуль Test.QuickCheck», так как он должен быть готов через 30 минут, но я хотел бы спросить, будет ли работать quickCheck prop_powers'
, или он получитнеудачи. Соответствующий дамп кода ниже. Спасибо заранее за любую помощь и информацию.
power :: Integer -> Integer -> Integer
power n k
| k < 0 = error "power: negative argument"
power n 0 = 1
power n k = n * power n (k-1)
power1 :: Integer -> Integer -> Integer
power1 n k | k == 0 = 1
| otherwise = product [n | _ <- [1 .. k]]
power2 :: Integer -> Integer -> Integer
power2 n k | k == 0 = 1
| even k = n * power n (div k 2)
| odd k = n * power n (k - 1)
| otherwise = error "Bad Input"
prop_powers :: Integer -> Integer -> Bool
prop_powers n k | power n k == power1 n k
&& power n k == power2 n k = True
| otherwise = False
powerTest :: Bool
powerTest = undefined
----------------------------------------------
prop_powers' n k = let k' = abs k in
power n k' == n ^ k'
&& power1 n k' == n ^ k'
&& power2 n k' == n ^ k'