@@ -179,6 +179,84 @@ def test_eq(kwargs1, kwargs2, expected):
actual = bal1 == bal2
assert actual == expected
@pytest.mark.parametrize('number,currency', {
(50, 'USD'),
(-50, 'USD'),
(50000, 'BRL'),
(-4000, 'BRL'),
})
def test_add_amount(number, currency):
start_amounts = testutil.balance_map(USD=500)
start_bal = core.Balance(start_amounts)
add_amount = testutil.Amount(number, currency)
actual = start_bal + add_amount
if currency == 'USD':
assert len(actual) == 1
assert actual['USD'] == testutil.Amount(500 + number)
else:
assert len(actual) == 2
assert actual['USD'] == testutil.Amount(500)
assert actual[currency] == add_amount
assert start_bal == start_amounts
def test_iadd_amount(number, currency):
balance = core.MutableBalance(start_amounts)
balance += add_amount
assert len(balance) == 1
assert balance['USD'] == testutil.Amount(500 + number)
assert len(balance) == 2
assert balance['USD'] == testutil.Amount(500)
assert balance[currency] == add_amount
@pytest.mark.parametrize('balance_map_kwargs', [
{},
{'USD': 0},
{'EUR': 10},
{'JPY': 20, 'BRL': 30},
{'EUR': -15},
{'JPY': -25, 'BRL': -35},
{'JPY': 40, 'USD': 0, 'EUR': -50},
])
def test_add_balance(balance_map_kwargs):
start_numbers = {'USD': 500, 'BRL': 40000}
start_bal = core.Balance(testutil.balance_map(**start_numbers))
expect_numbers = start_numbers.copy()
for code, number in balance_map_kwargs.items():
expect_numbers[code] = expect_numbers.get(code, 0) + number
add_bal = core.Balance(testutil.balance_map(**balance_map_kwargs))
actual = start_bal + add_bal
expected = core.Balance(testutil.balance_map(**expect_numbers))
def test_iadd_balance(balance_map_kwargs):
balance = core.MutableBalance(testutil.balance_map(**start_numbers))
balance += core.Balance(testutil.balance_map(**balance_map_kwargs))
assert balance == expected
@pytest.mark.parametrize('balance_map_kwargs,expected', DEFAULT_STRINGS)
def test_str(balance_map_kwargs, expected):
amounts = testutil.balance_map(**balance_map_kwargs)