def test_get_price(): pf = PriceFactory("0.01") p = pf.get_price(100) assert p == Price(100) assert p == Decimal("100.00") p = pf.get_price("100.01") assert p == Price("100.01") assert p == Decimal("100.01") p = pf.get_price(Decimal("222.22")) assert p == Price("222.22") assert p == Decimal("222.22")
def test_prev_price(): pf = PriceFactory(".5") starting_price = pf.get_price(100) new_price = pf.prev_price(starting_price, BID_SIDE) assert new_price == Price("99.5") new_price = pf.prev_price(new_price, BID_SIDE) assert new_price == Price(99) new_price = pf.prev_price(new_price, ASK_SIDE) assert new_price == Price("99.5") new_price = pf.prev_price(new_price, ASK_SIDE) assert new_price == Price(100)
def test_next_price(): pf = PriceFactory(".5") starting_price = pf.get_price(100) new_price = pf.next_price(starting_price, BID_SIDE) assert new_price == Price("100.5") new_price = pf.next_price(new_price, BID_SIDE) assert new_price == Price(101) new_price = pf.next_price(new_price, ASK_SIDE) assert new_price == Price("100.5") new_price = pf.next_price(new_price, ASK_SIDE) assert new_price == Price(100)
def test_min_price(): pf = PriceFactory("0.01", min_price=Decimal("100.0")) # should work for 100.01 and 100.0 but not 99.99 # also, price 100.01 should and 100.00 should not create 99.00 pf.get_price("100.01") pf.get_price("100.00")
def test_get_price_wrong_mpi_int(): with pytest.raises(InvalidPriceException): pf = PriceFactory(5) pf.get_price(7)
def test_get_price_wrong_mpi_decimal(): with pytest.raises(InvalidPriceException): pf = PriceFactory("0.01") pf.get_price(Decimal("100.001"))
def test_max_price_excpetion(): with pytest.raises(InvalidPriceException): pf = PriceFactory("0.01", max_price=Decimal("100.0")) pf.get_price("100.01")
def test_max_price(): pf = PriceFactory("0.01", max_price=Decimal("100.0")) # should work for 99.99 and 100.0 but not 100.01 # also, price 99.99 and 100.00 should be created, but should not create 99.00 pf.get_price("99.99") pf.get_price("100.00")
def test_min_price_excpetion(): with pytest.raises(InvalidPriceException): pf = PriceFactory("0.01", min_price=Decimal("100.0")) # should work for 100.01 and 100.0 but not 99.99 # also, price 100.01 should and 100.00 should not create 99.00 pf.get_price("99.99")