haskell - 使用 QuickCheck 测试随机生成器

标签 haskell quickcheck

我编写了一个随机生成器来创建扫雷板。它返回一个 Gen Board,其中 Board 是我自己定义的数据类型。我想测试它是否达到了预期的效果。由于它是一个生成器,我无法使用我习惯的返回 Bool 或 Property 的函数。有没有使用quickCheck测试生成器的好方法?

最佳答案

假设你有

genBoard :: Gen Board
isValidBoard :: Board -> Bool

您可以使用 forAll 组合器测试生成器是否有效,

prop_genBoardMakesValidBoards :: Property
prop_genBoardMakesValidBoards = forAll genBoard isValidBoard

测试生成器是否足够随机比较困难,例如它并不总是返回一个简单的板。

关于haskell - 使用 QuickCheck 测试随机生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27381125/

相关文章:

haskell - 通过生成素数使用 QuickCheck

haskell - GHCJS 文本数据构造函数

haskell - 如何生成简单类型的任意实例以进行快速检查

unit-testing - 声明任意实例时避免构建对 QuickCheck 的依赖

haskell - 如何控制 Haskell 中的主操作系统线程?

haskell - 是否可以在 QuickCheck 中生成任意函数

haskell - 从 Cabal 向 HSpec 提供选项

haskell - 如何生成从每个可能的字符中提取的字符串?

haskell - 单独的 'App' 和 'BackgroundJobs' 包的布局

parsing - Haskell 解析器到 AST