Exemplo n.º 1
0
    def test_inversion_on_zero_amount(self):
        m = Money(0, 'USD')

        expected = Money(0, 'USD')
        actual = m.get_inverse()

        assert expected == actual
Exemplo n.º 2
0
    def test_inversion_on_negative_amount(self):
        m = Money(-500, 'USD')

        expected = Money(500, 'USD')
        actual = m.get_inverse()

        assert expected == actual
Exemplo n.º 3
0
    def test_rounding_to_currency_precision(self):
        m1 = Money(40000, "USD", 4)

        rounded = m1.round_to(2)

        assert rounded.get_amount() == 400
        assert rounded.precise_amount == 400
        assert rounded.precision == 2
Exemplo n.º 4
0
    def test_lifting_precision(self):
        m1 = Money(400, "USD")

        lifted = m1.round_to(4)

        assert lifted.precise_amount == 40000, "Precise amount {0} is not equal to 40000".format(m1.precise_amount)

        assert lifted == m1, "Currency amount {0} is not equal to 400".format(lifted.get_amount())
Exemplo n.º 5
0
    def test_using_currency_without_precision_int(self):
        amount = 2500
        expected = 2500

        # Yen has no fractional amounts
        m = Money(amount, 'JPY')

        assert m.get_amount() == expected
Exemplo n.º 6
0
    def test_materialized_fractional_amounts(self):
        m1 = Money(400, "USD")
        m2 = Money(40001, "USD", 4)

        assert m2.materialize() == m1
Exemplo n.º 7
0
    def test_highest_precision_with_lifted_money(self):
        m1 = Money(400, "USD")
        m2 = Money(40000, "USD", 4)

        assert Money.highest_precision(m1, m2) == 4
Exemplo n.º 8
0
    def test_using_currency_without_precision_float(self):
        amount = 2500.0
        expected = 2500
        m = Money(amount, 'JPY')

        assert m.get_amount() == expected
Exemplo n.º 9
0
    def test_passing_int_uses_exact(self):
        initial = 2500
        expected = 2500

        m = Money(initial, 'USD')
        assert m.get_amount() == expected
Exemplo n.º 10
0
    def test_passing_float_stores_as_int(self):
        initial = 25.0
        expected = 2500

        m = Money(initial, 'USD')
        assert m.get_amount() == expected