11import brownie
22import pytest
3+ from simulation import Curve
34
45pytestmark = [
56 pytest .mark .skip_pool ("busd" , "compound" , "pax" , "susd" , "usdt" , "y" ),
@@ -42,7 +43,7 @@ def test_lp_token_balance(alice, swap, pool_token, idx, divisor, n_coins, base_a
4243
4344@pytest .mark .itercoins ("idx" )
4445@pytest .mark .parametrize ("rate_mod" , [0.9 , 1.1 ])
45- def test_expected_vs_actual (chain , alice , swap , wrapped_coins , pool_token , idx , rate_mod ):
46+ def test_expected_vs_actual (chain , alice , swap , wrapped_coins , pool_token , idx , n_coins , rate_mod ):
4647 amount = pool_token .balanceOf (alice ) // 10
4748 wrapped = wrapped_coins [idx ]
4849
@@ -57,6 +58,10 @@ def test_expected_vs_actual(chain, alice, swap, wrapped_coins, pool_token, idx,
5758
5859 assert wrapped_coins [idx ].balanceOf (alice ) == expected
5960
61+ balances = [swap .balances (i ) for i in range (n_coins )]
62+ curve_model = Curve (swap .A (), balances , n_coins , tokens = pool_token .totalSupply ())
63+ assert wrapped_coins [idx ].balanceOf (alice ) == curve_model .calc_withdraw_one_coin (amount , idx )[0 ]
64+
6065
6166@pytest .mark .itercoins ("idx" )
6267def test_below_min_amount (alice , swap , wrapped_coins , pool_token , idx ):
0 commit comments