問題陳述下面是一個(gè)與我想做的事情很接近的玩具示例。@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í)數(shù)據(jù)的一部分。該數(shù)據(jù)幀中的值很少。 NaN我想使用它hypothesis,因?yàn)樗浅0簦椅覉?jiān)信這是正確的做事方式。但我還想確保測(cè)試中的方法和函數(shù)適用于 NaN。我真的不想只說NaNs,將來可能會(huì)出現(xiàn)其他內(nèi)容(例如,使用逗號(hào)而不是句點(diǎ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會(huì)跟蹤失敗的值,但根據(jù)我的經(jīng)驗(yàn),它似乎并不能保證它們的使用。有沒有辦法做我想做的事?
1 回答

交互式愛情
TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用@example
裝飾器來確保某些示例正在被測(cè)試。
這是假設(shè)快速入門指南中的示例:
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('')以確保測(cè)試將使用空字符串運(yùn)行為例。
我還沒有完全理解你的場(chǎng)景的細(xì)節(jié),但也許你可以根據(jù)自己的需要調(diào)整這個(gè)例子。
添加回答
舉報(bào)
0/150
提交
取消