haskell - QuickCheck 中的“大小”参数究竟是什么?
问题描述
在 quickcheck的很多函数中都会用到size参数。但我很难理解它到底是什么。getSize返回什么?
解决方案
从手册:
测试数据生成器有一个隐含的大小参数;
quickCheck
从生成小测试用例开始,随着测试的进行逐渐增加大小。不同的测试数据生成器以不同的方式解释大小参数:有些忽略它,而列表生成器例如将其解释为生成列表长度的上限。您可以随意使用它来控制自己的测试数据生成器。您可以使用获取 size 参数的值
sized :: (Int -> Gen a) -> Gen a
sized g
调用g
,将当前大小作为参数传递给它。例如,要生成 0 到 size 范围内的自然数,请使用sized $ \n -> choose (0, n)
大小控制的目的是确保测试用例足够大以揭示错误,同时保持足够小以快速测试。
这getSize
只是获取该尺寸参数的另一种方法。注意getSize
等价于sized pure
和sized
等价于(getSize >>=)
。
推荐阅读
- azure-cosmosdb - CosmosDB 气流
- vue.js - Vue 3 甚至更新了 toRaw 对象?
- c++ - 移动构造函数和移动重载赋值运算符的问题?
- python - Pygame 中的多个显示对象
- python - 如何通过管道连接到变量
- javascript - Express 不向浏览器发送 cookie?(它派邮递员)
- r-markdown - \noopsort{} 在 R 降价 bibtex 参考书目 @preamble
- python - 如何将 python 函数添加到 HTML 中?
- spring - Spring boot-keycloak 硬编码角色
- pine-script - 如果满足条件,如何停止脚本?