我有以下方法在我的一項測試中生成隨機數(shù)據(jù):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()]如何將其轉(zhuǎn)換為假設策略?這是我嘗試使用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條經(jīng)驗 獲得超4個贊
您的嘗試基本上是正確的,只是字典迭代順序可能不可靠 - 因此示例可能無法正確復制或縮小。我會寫成內(nèi)聯(lián),如:
my_strategy = hs.tuples(
*[hs.sampled_from(data_categories[k]) for k in sorted(data_categories)]
).map(list)
添加回答
舉報
0/150
提交
取消