haskell - Quickcheck:生成一个由给定池中的字符组成的字符串

标签 haskell testing quickcheck

propertyForStringsFromMyCharPool :: String -> Bool
-- implementation

main = T.quickCheck propertyForStringsFromMyCharPool

现在 QuickCheck 生成各种字符串,但我只想测试我的属性以获取字符池中的字符串。

我现在的输出是:

*** Failed! Falsifiable (after 3 tests and 2 shrinks):    
"-"

但这不是真正的失败,因为 - 不包含在我的字符集中,并且一开始就不应该生成包含它的字符串。


最佳答案

我觉得你可以用

elements :: [a] -> Gen a

结合

listOf :: Gen a -> Gen [a]

所以你的 String 生成器看起来像这样

vowels :: Gen String
vowels = listOf (elements "aeiou")

关于haskell - Quickcheck:生成一个由给定池中的字符组成的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35689180/

相关文章:

haskell - 快速检查有关长度索引列表的属性

haskell - 使用 cabal : what did I do wrong? 安装 Threepenny-gui

haskell - 为快速检查生成无偏图的任意实例

perl - 如何调试由 Module::Starter 制作的模块?

针对多种类型测试 QuickCheck 属性?

haskell - 为什么一旦其中一项完全收缩,收缩就会停止

c++ - 如何使用类型级函数动态创建静态类型?

haskell - 如何在不安装 cabal 的情况下在 snap 框架中进行迭代

haskell - 了解具有类约束的 2 级类型别名

java - 企业集成测试夹具设置