Od Doctest's readme, można użyć doctest z QuickCheck, tak:Jak mogę użyć wejścia wielowierszowego z QuickCheck w doctest?
-- |
-- prop> sort xs == (sort . sort) (xs :: [Int])
Chciałbym opisać tę właściwość przy użyciu wielu linii, prawdopodobnie jak
-- |
-- prop> sort xs ==
-- (sort . sort) (xs :: [Int])
Doctest sobie wspiera wejście wielo-liniowy (ponownie z readme)
-- |
-- >>> :{
-- let
-- x = 1
-- y = 2
-- in x + y + multiline
-- :}
-- 6
i próbowałem kilka podobnych składnie wymyśliłem, jak
-- |
-- prop> :{ sort xs ==
-- (sort . sort) (xs :: [Int])
-- }:
bez powodzenia. (W powyższym przykładzie komunikat o błędzie to parse error on input '{'
.)
Jak mogę użyć wielowierszowego wejścia z Quickcheck w doctest?
Wierzę, że podobnie jak ghci, wieloliniowa składnia wymaga, aby symbole otwierające i zamykające znajdowały się na osobnej linii. Twój przykład nie zadziała, ponieważ ': {' nie znajduje się w osobnej linii. – user2407038
@ user2407038 Uważam, że masz rację w tej sprawie. Nie mogę uniknąć błędu analizy i mieć 'prop>' rozpoznać wiele linii jako dane wejściowe. – Yosh