問題陳述下面是一個與我想做的事情很接近的玩具示例。@given( idx_start=integers(min_value=0, max_value=100000), idx_window=integers(min_value=0, max_value=100000),)def test_calc_max(conftest_df, idx_start, idx_window): row_idxs = conftest_df.index[idx_start : (idx_start + idx_window)] assert calc_max(conftest_df.loc[row_idxs, "my_column"]) >= 0conftest_df是我在固定文件中提供的數(shù)據(jù)框conftest.py,它代表我用于包的真實數(shù)據(jù)的一部分。該數(shù)據(jù)幀中的值很少。 NaN我想使用它hypothesis,因為它非常棒,而且我堅信這是正確的做事方式。但我還想確保測試中的方法和函數(shù)適用于 NaN。我真的不想只說NaNs,將來可能會出現(xiàn)其他內容(例如,使用逗號而不是句點來表示小數(shù)的數(shù)字)。理想的解決方案通過hypothesis我寧愿能夠做這樣的事情:@given( idx_start=integers(min_value=0, max_value=100000, includes=[5, 4000, 80000]), idx_window=integers(min_value=0, max_value=100000, includes=[20]),)...并且有辦法確保通過參數(shù)考慮某些值includes。我知道這hypothesis會跟蹤失敗的值,但根據(jù)我的經驗,它似乎并不能保證它們的使用。有沒有辦法做我想做的事?
1 回答

交互式愛情
TA貢獻1712條經驗 獲得超3個贊
您可以使用@example
裝飾器來確保某些示例正在被測試。
這是假設快速入門指南中的示例:
from hypothesis import given, example
from hypothesis.strategies import text
@given(text())
@example('')
def test_decode_inverts_encode(s):
? ? assert decode(encode(s)) == s
這里,@example('')以確保測試將使用空字符串運行為例。
我還沒有完全理解你的場景的細節(jié),但也許你可以根據(jù)自己的需要調整這個例子。
添加回答
舉報
0/150
提交
取消