1 个不稳定版本
0.1.0 | 2021年11月28日 |
---|
#7 in #upper-bound
每月51次下载
用于 arbitrary
10KB
156 行
Exhaustigen
这是一个小巧(但令人愉悦!)的测试实用程序库。
它基于以下博客文章中的想法和代码
https://matklad.github.io//2021/11/07/generate-all-the-things.html
TL;DR:想法是编写一个类似于对 PRNG 编写的测试的测试,即一个要求“生成器”创建标量、布尔值、数据向量、随机洗牌等,但使用具有一些有趣特性的特殊生成器
- 它有一个“完成”的概念,因此您可以将其放入 do-while 循环中
- 每次调用它都需要一个包含上限,这个上限应该很小
- 它 跟踪其通过上限序列的进度
- 它 在请求更多数据时懒扩展 上限序列
通过将此类生成器通过此类命令式测试,并将测试的主体放在 do-while 循环中,您可以编写结构复杂的代码,并具有复杂的值相关嵌套结构 -- 例如,生成值 K 在 0..N 中,然后生成值 J 在 0..K 中,依此类推 -- 并且它将自动记录和枚举对代码有意义的序列空间,重新运行直到耗尽所有可能的路径/值。
许可证
MIT + ASL2.0,经 Aleksey 授权