作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种构建 Hypothesis 的方法策略使得给定列表中的每个元素都出现在生成的列表中。
例如
假设我们有
values = [0, 1, 2, 3, 5, 8]
我们想要一个策略,从给定的值生成列表,这样每个元素至少出现一次,例如
[0, 1, 2, 3, 5, 8]
[2, 1, 0, 3, 5, 8]
[0, 0, 1, 2, 3, 5, 8]
[0, 0, 0, 1, 2, 3, 5, 8]
[5, 2, 5, 2, 8, 2, 0, 8, 3, 2, 0, 5, 5, 3, 5, 5, 5, 1]
我的程序出现错误,因为我需要选择一个不存在于使用 sampled_from
策略的列表中的值。 (大概有一个足够大的列表,这样一个值出现的可能性会增加,但是我正在处理昂贵的对象,这似乎是一种解决方法)
我花了很多时间试图弄清楚是否有任何策略强制某些值将出现在生成的值中——fixed_dictionaries
似乎是唯一的——我正在努力甚至想出一个简单的复合策略。
最佳答案
我们可以使用strategies.lists
,然后与values
连接,这样每个值都会出现,然后洗牌
from hypothesis import strategies
sub_values = (strategies.lists(strategies.sampled_from(values))
.map(lambda sublist: sublist + values)
.flatmap(strategies.permutations))
关于python - 我如何生成一个假设策略来生成一个列表,该列表至少包含它从中采样的每个元素中的一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67210087/
我是一名优秀的程序员,十分优秀!