gpt4 book ai didi

haskell - 如何在 doctest 中使用带有 QuickCheck 的多行输入?

转载 作者:行者123 更新时间:2023-12-04 02:26:13 25 4
gpt4 key购买 nike

来自 Doctest's readme ,可以将 doctest 与 QuickCheck 一起使用,如下所示:

-- |
-- prop> sort xs == (sort . sort) (xs :: [Int])

我想用多行来描述这个属性,可能像
-- |
-- prop> sort xs ==
-- (sort . sort) (xs :: [Int])

Doctest 本身支持多行输入(同样来自自述文件)
-- |
-- >>> :{
-- let
-- x = 1
-- y = 2
-- in x + y + multiline
-- :}
-- 6

我尝试了几种类似的语法,例如
-- |
-- prop> :{ sort xs ==
-- (sort . sort) (xs :: [Int])
-- }:

没有任何成功。 (在上面的示例中,错误消息是 parse error on input '{' 。)

如何在 doctest 中使用带有 Quickcheck 的多行输入?

最佳答案

截至 2017 年 9 月,doctest does not allow multi-line properties .但是,您可以使用 quickCheck像往常一样在doctest中:

-- >>> import Test.QuickCheck
-- >>> import Data.List (sort)
-- >>> :{
-- quickCheck $ \xs ->
-- sort xs ==
-- (sort . sort) (xs :: [Int])
-- :}
-- +++ OK, passed 100 tests.

这很冗长,但可以让您编写任意长检查。请注意,您始终可以创建 prop_*函数并在您的文档测试中使用它。

关于haskell - 如何在 doctest 中使用带有 QuickCheck 的多行输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30836900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com