Example #1
0
    def remaining_sell_amount(self) -> Wad:
        unavailable_buy_amount = self._exchange.get_unavailable_buy_amount(
            self)

        if unavailable_buy_amount >= self.buy_amount:
            return Wad(0)

        else:
            return Wad.max(
                self.pay_amount -
                (unavailable_buy_amount * self.pay_amount / self.buy_amount),
                Wad(0))
Example #2
0
 def test_max_value_should_reject_comparison_with_ints(self):
     with pytest.raises(ArithmeticError):
         Wad.max(Wad(10), 20)
     with pytest.raises(ArithmeticError):
         Wad.max(15, Wad(25))
Example #3
0
 def test_max_value_should_reject_comparison_with_rays(self):
     with pytest.raises(ArithmeticError):
         Wad.max(Wad(10), Ray(20))
     with pytest.raises(ArithmeticError):
         Wad.max(Wad(25), Ray(15))
Example #4
0
 def test_max_value(self):
     assert Wad.max(Wad(10), Wad(20)) == Wad(20)
     assert Wad.max(Wad(25), Wad(15)) == Wad(25)
     assert Wad.max(Wad(25), Wad(15), Wad(40)) == Wad(40)
Example #5
0
 def remaining_buy_amount(self) -> Wad:
     return Wad.max(
         self.buy_amount - self._exchange.get_unavailable_buy_amount(self),
         Wad(0))