0
20
18
07
为了账号安全,请及时绑定邮箱和手机立即绑定

假设策略:对于每个“桶”,从桶中抽取一个值

假设策略:对于每个“桶”,从桶中抽取一个值

慕容3067478 2021-06-30 16:06:43
我有以下方法在我的一项测试中生成随机数据:import randomdata_categories = {    'a': [1, 2, 3],    'b': [4, 5],    'c': [6, 7, 8]}def make_record():    return [random.choice(vals) for vals in data_categories.values()]如何将其转换为假设策略?这是我尝试使用hypothesis.strategies.composite,但很难知道我是否正确使用它:import hypothesis.strategies as hs@hs.compositedef make_record(draw):    return [draw(hs.sampled_from(vals)) for vals in data_categories.values()]

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

您的尝试基本上是正确的,只是字典迭代顺序可能不可靠 - 因此示例可能无法正确复制或缩小。我会写成内联,如:


my_strategy = hs.tuples(

    *[hs.sampled_from(data_categories[k]) for k in sorted(data_categories)]

).map(list)


查看完整回答
反对 回复 2021-07-06

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号