Haskell 随机(如QuickCheck)与确定性(如SmallCheck)属性检查

Haskell 随机(如QuickCheck)与确定性(如SmallCheck)属性检查,haskell,testing,Haskell,Testing,我知道财产检查的两种方法: 随机化方法(如快速检查)使您为类型定义一个随机值生成器,然后为大量随机生成的案例中的每一个验证不变量。例如,在向量空间的情况下ℤⁿ (比如定义为[Word]),它将生成任意长度和方向的向量 确定性方法(如SmallCheck中的方法)的工作原理相同,只是它生成的值从简单和小到更复杂和更广泛的确定性,覆盖(据我所知)领域的一小部分。例如,在与上面相同的情况下,它将生成零向量,然后所有长度的向量我不知道SmallCheck,但假设ℤ 你的意思是所有整数的集合,我不知道如

我知道财产检查的两种方法:

  • 随机化方法(如快速检查)使您为类型定义一个随机值生成器,然后为大量随机生成的案例中的每一个验证不变量。例如,在向量空间的情况下ℤⁿ (比如定义为
    [Word]
    ),它将生成任意长度和方向的向量


  • 确定性方法(如SmallCheck中的方法)的工作原理相同,只是它生成的值从简单和小到更复杂和更广泛的确定性,覆盖(据我所知)领域的一小部分。例如,在与上面相同的情况下,它将生成零向量,然后所有长度的向量我不知道SmallCheck,但假设ℤ 你的意思是所有整数的集合,我不知道如果它生成所有长度为1的向量,它怎么会发展到生成长度为2的向量,依此类推。@MarkSeemann它不会,但它会生成所有长度为2的向量,这些向量只包含小于3的条目。我想知道为什么有人否决了这个问题。是不是因为它看起来像是在征求意见?这个问题似乎是在寻求讨论,而不是具体的答案。虽然这对于一篇博文来说是一个有趣的话题,但并不适合这么做。@Cubic我再次阅读了“帮助中心”中关于好问题和坏问题的部分,但在我看来,我的问题符合更好的观点。特别是,我想提请大家注意。我将在一分钟内进一步编辑我的问题;请告诉我更新后你的想法。