QuickCheck中“ size”参数的确切含义是什么?

问题描述 投票:1回答:1

size参数在快速检查中用于许多功能。但是我很难理解它的确切含义。 getSize返回什么?

haskell quickcheck
1个回答
0
投票

来自the manual

测试数据生成器具有隐式size参数; quickCheck首先生成小的测试用例,然后随着测试的进行逐渐增加大小。不同的测试数据生成器以不同的方式解释size参数:有些忽略它,而列表生成器例如将其解释为生成列表长度的上限。您可以随意使用它,以控制自己的测试数据生成器。

您可以使用以下方法获得size参数的值

sized :: (Int -> Gen a) -> Gen a

sized g调用g,将当前大小作为参数传递给它。例如,要生成范围为0到size的自然数,请使用

sized $ \n -> choose (0, n)

大小控制的目的是确保测试用例足够大以显示错误,而又保持足够小以进行快速测试。

并且getSize只是获取该size参数的另一种方法。请注意,getSize等效于sized puresized等效于(getSize >>=)

© www.soinside.com 2019 - 2024. All rights reserved.