mirror of
https://github.com/freqtrade/freqtrade.git
synced 2025-12-01 17:43:06 +00:00
Improve and parametrize pairlist tests
This commit is contained in:
@@ -774,12 +774,34 @@ def test_VolatilityFilter_error(mocker, whitelist_conf) -> None:
|
||||
PairListManager(exchange_mock, whitelist_conf, MagicMock())
|
||||
|
||||
|
||||
@pytest.mark.parametrize('sort_direction', ['asc', 'desc'])
|
||||
def test_VolatilityFilter_sort(
|
||||
mocker, whitelist_conf, tickers, time_machine, sort_direction) -> None:
|
||||
@pytest.mark.parametrize('pairlist,expected_pairlist', [
|
||||
({"method": "VolatilityFilter", "sort_direction": "asc"},
|
||||
['XRP/BTC', 'ETH/BTC', 'LTC/BTC', 'TKN/BTC']),
|
||||
({"method": "VolatilityFilter", "sort_direction": "desc"},
|
||||
['TKN/BTC', 'LTC/BTC', 'ETH/BTC', 'XRP/BTC']),
|
||||
({"method": "VolatilityFilter", "sort_direction": "desc", 'min_volatility': 0.4},
|
||||
['TKN/BTC', 'LTC/BTC', 'ETH/BTC']),
|
||||
({"method": "VolatilityFilter", "sort_direction": "asc", 'min_volatility': 0.4},
|
||||
['ETH/BTC', 'LTC/BTC', 'TKN/BTC']),
|
||||
({"method": "VolatilityFilter", "sort_direction": "desc", 'max_volatility': 0.5},
|
||||
['LTC/BTC', 'ETH/BTC', 'XRP/BTC']),
|
||||
({"method": "VolatilityFilter", "sort_direction": "asc", 'max_volatility': 0.5},
|
||||
['XRP/BTC', 'ETH/BTC', 'LTC/BTC']),
|
||||
({"method": "RangeStabilityFilter", "sort_direction": "asc"},
|
||||
['ETH/BTC', 'XRP/BTC', 'LTC/BTC', 'TKN/BTC']),
|
||||
({"method": "RangeStabilityFilter", "sort_direction": "desc"},
|
||||
['TKN/BTC', 'LTC/BTC', 'XRP/BTC', 'ETH/BTC']),
|
||||
({"method": "RangeStabilityFilter", "sort_direction": "asc", 'min_rate_of_change': 0.4},
|
||||
['XRP/BTC', 'LTC/BTC', 'TKN/BTC']),
|
||||
({"method": "RangeStabilityFilter", "sort_direction": "desc", 'min_rate_of_change': 0.4},
|
||||
['TKN/BTC', 'LTC/BTC', 'XRP/BTC']),
|
||||
])
|
||||
def test_VolatilityFilter_RangeStabilityFilter_sort(
|
||||
mocker, whitelist_conf, tickers, time_machine, pairlist, expected_pairlist) -> None:
|
||||
whitelist_conf['pairlists'] = [
|
||||
{'method': 'VolumePairList', 'number_assets': 10},
|
||||
{"method": "VolatilityFilter", "sort_direction": sort_direction}]
|
||||
pairlist
|
||||
]
|
||||
|
||||
df1 = generate_test_data('1d', 10, '2022-01-05 00:00:00+00:00', random_seed=42)
|
||||
df2 = generate_test_data('1d', 10, '2022-01-05 00:00:00+00:00', random_seed=2)
|
||||
@@ -817,10 +839,7 @@ def test_VolatilityFilter_sort(
|
||||
plm.refresh_pairlist()
|
||||
assert ohlcv_mock.call_count == 1
|
||||
assert exchange.ohlcv_candle_limit.call_count == 2
|
||||
assert plm.whitelist == (
|
||||
['XRP/BTC', 'ETH/BTC', 'LTC/BTC', 'TKN/BTC'] if sort_direction == 'asc'
|
||||
else ['TKN/BTC', 'LTC/BTC', 'ETH/BTC', 'XRP/BTC']
|
||||
)
|
||||
assert plm.whitelist == expected_pairlist
|
||||
|
||||
plm.refresh_pairlist()
|
||||
assert exchange.ohlcv_candle_limit.call_count == 2
|
||||
|
||||
Reference in New Issue
Block a user