相关疑难解决方法(0)

QuickCheck 2有哪些新功能?

QuickCheck 1和QuickCheck 2有哪些主要区别?通过查看Haddock文档,我可以看到它被拆分为更多模块,coarbitrary已被新Fun类型和FunArbitrary类替换(这对我来说似乎更容易理解),现在支持测试monadic代码.我还应该注意什么?

haskell quickcheck

40
推荐指数
1
解决办法
2647
查看次数

如何让Haskell QuickCheck 2.4增加#测试?

好的,正如我通过上一个问题所了解的那样,RWH书籍已经过时了QuickCheck.尽管我读过的所有帖子告诉我使用QuickCheck有多么简单,我找不到任何地方告诉我如何更改为房产运行的测试数量.

RWH说:

handyCheck limit = check defaultConfig {
                     configMaxTest = limit
                   , configEvery   = \_ _ -> ""
                   }
Run Code Online (Sandbox Code Playgroud)

如何使用QuickCheck 2.4做到这一点?更重要的是,我怎么会发现自己?请不要告诉我,我应该能够从API文档中找到它.

haskell quickcheck

26
推荐指数
1
解决办法
2768
查看次数

控制在QuickCheck中生成测试数据的方式

我写了一个算法来找到Haskell中子集求和问题的解决方案.签名是

subsetSum :: (Ord a, Num a) => [a] -> a -> Maybe [a]
Run Code Online (Sandbox Code Playgroud)

QuickCheck似乎非常适合测试它.例如,我在这里是我可以检查的属性之一:

prop_sumEqualsS l s = case subsetSum l s of
                        Just solution -> (sum solution) == s
                        Nothing       -> True
Run Code Online (Sandbox Code Playgroud)

问题是该算法计算量很大,运行100个大输入列表的测试需要很长时间才能运行.

我尝试使用QuickCheck 1并且确实运行得很快,但用于测试的数据集非常小.转移到QuickCheck 2后,似乎是相反的问题.有QC 手册,但它似乎很旧(没有日期信息),我不知道QC2还有多少适用.Haskell Wiki上提供了一个教程,但没有太多细节,只有几个关于实例化的文字Arbitrary.

所以我有两个问题:

  • QuickCheck 2中的哪些变化使它变得比QuickCheck慢得多?
  • 控制数据集创建的最佳方法是什么,使它们对给定的测试有用?

编辑:更具体地说,我想测试我的解决方案,列表大小从0到100,包含-10000到10000之间的整数.

haskell quickcheck

18
推荐指数
1
解决办法
3807
查看次数

标签 统计

haskell ×3

quickcheck ×3