def test_contract_costs(): c = Contract('ticker', 'test', '') c.long_offers = [ Offer(c, 'Yes', .1, 5), Offer(c, 'Yes', .16, 10), Offer(c, 'Yes', .2, 100), ] c.short_offers = [ Offer(c, 'Yes', .4, 6), Offer(c, 'Yes', .5, 4), Offer(c, 'Yes', .6, 10), ] assert c.cost_to_buy_n_long(1000) is None assert c.cost_to_buy_n_short(1000) is None assert c.cost_to_buy_n_long(5) == .5 assert c.cost_to_buy_n_long(10) == 1.3 assert c.cost_to_buy_n_long(20) == 3.1 assert c.cost_to_buy_n_short(6) == 2.4 assert c.cost_to_buy_n_short(10) == 4.4 assert c.cost_to_buy_n_short(12) == 5.6 assert c.cost_to_buy_n_short(20) == 10.4