我目前正在为 Matlab 实施 PBB,并且在某种程度上受到假设的影响。
我不明白假设如何处理递延策略的缩减。在文档中有代码片段
import hypothesis.strategies as st
x = st.deferred(lambda: st.booleans() | st.tuples(x, x))
x.example()
>>> (((False, (True, True)), (False, True)), (True, True))
现在,这个例子很可能会通过减少递归深度来缩小。但是,假设如何知道如何操纵 lambda 以使示例缩小?
DRMacIver 一个接一个的问题:
- 假设是否存储了哪些选择属于哪个策略?例如:
(False,(False,False))
可以构造为10010000
(深度优先)。如果我们采用子序列01
(其中第一个0
属于策略booleans
而不是tuples
现在),我们将得到示例True
,这可能不算作前者的缩小版本。