77from hydradx .model .amm .agents import Agent
88from hydradx .model .amm .trade_strategies import schedule_swaps
99from hydradx .model import run
10- from hypothesis import given , strategies as st , settings
10+ from hypothesis import given , strategies as st , settings , assume
1111from hydradx .tests .strategies_omnipool import asset_price_strategy , asset_quantity_strategy , \
1212 asset_quantity_bounded_strategy
1313from mpmath import mpf , mp
@@ -49,7 +49,8 @@ def test_oracle_multi_block_update():
4949 raise AssertionError (f"Oracle mismatch in { attr } for token { tkn } " )
5050
5151
52- def test_update_every_block ():
52+ @given (time_steps = st .integers (min_value = 1 , max_value = 10 ))
53+ def test_update_every_block (time_steps ):
5354 omnipool1 = OmnipoolState (
5455 tokens = {
5556 'HDX' : {'liquidity' : 100000 , 'LRNA' : 100 },
@@ -58,7 +59,7 @@ def test_update_every_block():
5859 unique_id = 'omnipool1'
5960 )
6061 omnipool2 = omnipool1 .copy ()
61- omnipool2 .update_function = lambda self : self . oracles [ 'price' ]. update ( self . current_block )
62+ omnipool2 .update_function = OmnipoolState . update_oracles
6263 omnipool2 .unique_id = 'omnipool2'
6364 swaps = [
6465 * [None ] * 4 ,
@@ -77,9 +78,9 @@ def test_update_every_block():
7778 pools = {'omnipool1' : omnipool1 , 'omnipool2' : omnipool2 },
7879 agents = {'trader1' : trader1 , 'trader2' : trader2 },
7980 )
80- events = run .run (initial_state , time_steps = 10 , silent = True )
81+ events = run .run (initial_state , time_steps = time_steps , silent = True )
8182 for pool in events [- 1 ].pools .values ():
82- pool .oracles [ 'price' ]. update ( pool . current_block )
83+ pool .update_oracles ( )
8384
8485 final_oracles = [pool .oracles ['price' ] for pool in events [- 1 ].pools .values ()]
8586 for tkn in initial_state .asset_list :
@@ -257,6 +258,7 @@ def test_oracle_one_block_with_swaps(lrna: list[float], oracle_liquidity: list[f
257258
258259
259260def test_oracle_multi_block ():
261+ time_steps = 10
260262 init_liquidity = {
261263 'HDX' : {'liquidity' : 100000 , 'LRNA' : 100000 },
262264 'USD' : {'liquidity' : 100000 , 'LRNA' : 100000 },
@@ -297,7 +299,7 @@ def test_oracle_multi_block():
297299 )}
298300 )
299301
300- events = run .run (initial_state = initial_state , time_steps = 10 , silent = True )
302+ events = run .run (initial_state = initial_state , time_steps = time_steps , silent = True )
301303 final_omnipool = events [- 1 ].pools ['omnipool' ].update ()
302304 omnipool_oracle = final_omnipool .oracles ['price' ]
303305 expected_vol_in = {'DOT' : 66.66324219149098 , 'HDX' : 178.8008316214096 , 'USD' : 0 }
0 commit comments