问题标签 [quickcheck]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 将单元测试与 Haskell's Cabal 集成的当前状态?
当我在谷歌上搜索如何将单元测试与 cabal 文件集成时,我要么找到
- http://www.haskell.org/haskellwiki/How_to_write_a_Haskell_program似乎没有描述 HUnit/QuickCheck 与 Cabal 文件的集成
- 或者我看到诸如“等待支持 cabal 测试的 Cabal xy”之类的消息,但我也找不到任何文档
您今天将如何使用 cabal 运行所有单元测试(例如,每次我执行“cabal 构建”时)?
haskell - Haskell QuickCheck 唯一随机数生成
有谁知道如何使用 QuickCheck 在 Haskell 中定义生成器,以便只选择一次选择的元素?
我已经意识到我可能需要一个“Gen(Maybe Positive)”生成器,但当然这会产生重复的数字。我想要它,以便选择不重复的数字。在返回数字的情况下,我想要 Just return,而在随机数全部用尽的情况下,我希望 Gen Nothing 返回。
谢谢,
标记
unit-testing - 快速检查 Smalltalk?
是否有 Smalltalk 的 QuickCheck 模块,尤其是 Gnu Smalltalk、Squeak 和/或 Pharo?
haskell - QuickCheck 实例在 cabal 包中属于哪里?
我有一个cabal 包,它导出一种NBT
可能对其他开发人员有用的类型。我遇到了Arbitrary
为我的类型定义实例的麻烦,如果不将它提供给其他开发人员来测试他们集成了我的工作的代码,那将是一种耻辱。
但是,我想避免我的实例可能会妨碍的情况。也许其他开发人员对实例应该是什么有不同的想法。Arbitrary
也许我的包对特定版本的 QuickCheck 的依赖可能会干扰或不需要客户端项目的依赖。
我的想法,没有特别的顺序,是:
- 将实例留在
Arbitrary
类型定义旁边,让客户端处理隐藏实例或覆盖 QuickCheck 版本号。 - 使该
Arbitrary
实例成为同一包内的单独模块中的孤立实例,例如Data.NBT.Arbitrary
. 整个包对 QuickCheck 的依赖仍然存在。 - 在完全独立的包中提供
Arbitrary
实例,以便它可以作为客户端项目的单独测试依赖项列出。 - 有条件地在主包中包含
Arbitrary
实例和 QuickCheck 依赖项,但前提-ftest
是设置了类似的标志。
我已经看到在其他库中使用了所有这些的组合,但还没有就哪个效果最好达成任何共识。我想在上传到 Hackage 之前尝试把它做好。
haskell - 如何在 main 中使用快速检查
我正在为我编写的二进制搜索函数编写测试。
在 ghci 中使用 quickCheck 效果很好,但是当我尝试运行 main 时,它会出现错误
为什么这在 main 中不起作用,但在 ghci 中起作用?
c - 我们如何在 va_list 上应用非 vararg 函数?
背景故事
我正在将QuickCheck单元测试框架移植到 C(请参阅GitHub 上的工作代码)。语法将是:
property
例如,要测试的函数在哪里bool is_odd(int)
。gen1
,gen2
等是为 生成输入值的函数property
。有些生成整数,有些生成字符,有些生成字符串,等等。
for_all
将接受具有任意输入的函数(任意数量的参数,任何类型的参数)。for_all
将运行生成器,创建测试值以传递给属性函数。例如,该属性is_odd
是一个类型为 的函数bool f(int)
。for_all
将使用生成创建 100 个测试用例。如果属性为其中任何一个返回 false,for_all
将打印有问题的测试用例值。否则,for_all
将打印"SUCCESS"
.
因此for_all
应该使用 ava_list
来访问生成器。一旦我们调用了生成器函数,我们如何将它们传递给属性函数?
例子
如果is_odd
有 type bool f(int)
,我们将如何实现apply()
具有以下语法的函数:
次要问题
见SO。
我们如何智能地打印失败测试用例的任意值?一个测试用例可能是一个整数,或者两个字符,或者一个字符串,或者以上的某种组合?我们不会提前知道是否使用:
printf("%d %d %d\n", some_int, some_int, some_int);
printf("%c\n" a_character);
printf("%s%s\n", a_string, a_struct_requiring_its_own_printf_function);
haskell - 避免重复的 QuickCheck 属性
我开始通过做 99 个 Haskell 问题来学习 Haskell。 http://www.haskell.org/haskellwiki/H-99:_Ninety-Nine_Haskell_Problems 我想使用快速检查为每个程序/函数编写测试。
我有以下代码:
我可能会写myLast''
,myLast'''
等。有没有一种方法可以测试所有这些方法而无需复制代码和快速检查属性?
相关问题:现在,我告诉 quickcheck 使用字符串。有没有办法随机使用不同的类型进行测试?
haskell - 使用 Haskell 的 QuickCheck 生成特定长度的列表
当 prop_3a 通过 QuickCheck 运行时,它放弃了,因为它不会生成足够长的列表。
如何编写一个生成器来生成长度大于随机整数的列表?
haskell - 如何在 Djinn/UU/Examples/Equality.hs 中加载示例?
之后cabal install Djinn
使用 QuickCheck,可执行文件位于./.cabal/bin/djinn
.
然后我将可执行文件复制到目录Downloads/Djinn/UU/Examples/
Equality.hs
然后想运行示例djinn Equality.hs
,无法解析命令
然后./djinn
然后:load full path/UU/Examples/Equality.hs
return 无法解析命令
haskell - Haskell QuickCheck2 使用 ByteString?
RWH 书籍说要获得 ByteString 支持,我需要添加:
但是我的带有 QuickCheck 2.4.1.1 的 GHC 7.2 告诉我:
任何指针?