python-hypothesis 如何缩小延迟策略

问题描述

我目前正在为 Matlab 实现 PBB,并且在某种程度上受到假设的影响。

我不明白假设如何处理递延策略的缩减。 在文档中有代码片段

import hypothesis.strategies as st
x = st.deferred(lambda: st.booleans() | st.tuples(x,x))
x.example()
>>> (((False,(True,True)),(False,True))

现在,这个例子应该很可能通过减少递归深度来缩小。但是,假设如何知道如何操纵 lambda 以使示例缩小?


DRMacIver 回答后的问题:

  • 假设是否存储了哪些选择属于哪种策略?例如:(False,False)) 可以构造为 10010000(深度优先)。如果我们采用子序列 01(其中第一个 0 属于策略 booleans 而不是 tuples),我们将得到示例 True,这可能不视为前者的缩小版本。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)