问题标签 [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.

0 投票
1 回答
122 浏览

haskell - 增强测试.QuickCheck

我想扩展QuickCheck以在测试失败时给我更好的消息(而不仅仅是种子)。例如,我希望能够按照以下方式创建事物:

或(带有Monoid“停止”SadResult并“继续”在上的实例HappyResult,类似于(&&)运算符 for TestResult

如何扩展 QuickCheck 功能?或者,是否有一个更可扩展的随机测试库?

谢谢!

0 投票
1 回答
109 浏览

haskell - 将测试套件链接到库时出错

我正在尝试使用 quickcheck 为我编写的简单词法分析器编写测试。但是,我似乎遇到了某种链接错误

我正在使用 cabal-dev 构建

我的 .cabal 文件正在构建一个库“mylib” 库部分在其公开的模块部分 Lexical.Token 下,在测试套件下,我在 build_depends 下列出了“mylib”,我还在其他模块下列出了 Lexical.token。

我错过了什么?我从 ghc (7.4.1) 得到的错误如下:

0 投票
1 回答
1761 浏览

haskell - Haskell quickcheck 生成和测试玫瑰树?

我正在尝试一个简单的玫瑰树代码。

我可以使用 quickcheck 来测试 Eq 实例的实现吗?如果是,如何?如果没有,最好的选择是什么?

我还有一个执行以下操作的函数:

函数 appendPath 将玫瑰树作为输入,并返回一个玫瑰树,其中包含树的每个节点中从节点到根的路径。我在另一个函数中使用此信息。

如何使用 quickcheck 在大型玫瑰树上检查此实现?

编辑: 正如 mhwombat 所建议的,编写将类型参数作为参数的生成器似乎是不可能的。所以这是我的类型参数。我想构造一个RoseT表示有效随机算术表达式的字符串,其中算术表达式本身遵循以下结构:

data Expr = Var String | AddExpr [Expr] | MulExpr [Expr] deriving Show

那么,有没有办法在RoseT Expr仅使用快速检查随机生成 Expr 本身的情况下生成随机?

再次感谢 mhwombat,感谢我的婴儿步。

0 投票
2 回答
852 浏览

haskell - QuickCheck 测试随机挂起

我是 Haskell 的新手。我正在玩 QuickCheck 测试,尝试测试一个简单的功能calculateStrengthSingle(请参阅下面的 testee 的来源)

测试看起来像这样

当我这样做时runhaskell TestFighter.hs,有输出(1 test)(数字在变化,有时它04)并且 CPU 100% 加载。一分钟左右什么都没有发生。当我中断程序时Ctrl+C,它会吐出类似的东西

问题:

  1. 我哪里搞砸了?
  2. 如何调试无限计算的情况,比如这个?
0 投票
2 回答
1647 浏览

haskell - Haskell QuickCheck 为具有许多输入变量的函数生成随机数据

我有一个具有以下类型签名的函数

  • 第一个输入应该是来自非负严格正整数的值
  • 第二个和第三个输入必须在闭合区间 [0.0,1.0] 内,否则该函数没有意义

该函数具有

如何分别为 和 生成随机maxIdx数据;我知道该函数,但不知道如何将其与多个输入变量一起使用。r1r2choose

现在我已经用 fixed 测试了 Property idx,这不是它应该测试的方式。

0 投票
1 回答
1760 浏览

testing - 为什么 QuickCheck 放弃了?

QuickCheck用来测试以下程序:

尽管反应各不相同,但我不断收到消息

这是我应该关心的事情吗?还是测试输入的性质决定了 QuickCheck 将运行多长时间?

0 投票
2 回答
240 浏览

haskell - 使用 Haskell QuickCheck 测试 TCP 端口验证器

我正在尝试(第一次)使用 QuickCheck 来测试一个验证 TCP 端口号的函数:

我写了一个这样的任意实例:

但我不确定如何编写测试属性。

0 投票
2 回答
1008 浏览

haskell - 使用 QuickCheck 测试故意错误条件

我已经看到如何使用 QuickCheck 测试单子和非单子代码,但是如何使用它来测试处理错误的代码,即打印一些消息然后调用exitWith

0 投票
0 回答
659 浏览

haskell - 使用 Test.Framework 为代数数据类型实现 QuickCheck Arbitrary

我正在尝试为我的 ADT 编写一些快速检查属性:

这不会编译:

...但我确实为Arbitrary Activity. 我错过了什么?

0 投票
0 回答
254 浏览

haskell - quickCheck 出现分段错误的错误:11

我正在研究“Haskell - 函数式编程的工艺”,并遇到了一个非常奇怪的问题:

我定义了以下两个函数:

这似乎都产生了预期的结果。然后我定义了以下 quickCheck 属性:

quickCheck prop_name与生产一起运行时的所有这些属性:

我的模块定义如下:

是什么导致此错误消息?