@@ -197,6 +197,38 @@ def test_balance_at_cost_empty():
balance = related.balance_at_cost()
assert balance.is_zero()
@pytest.mark.parametrize('date,expected', [
(testutil.FY_MID_DATE - datetime.timedelta(days=1), 0),
(testutil.FY_MID_DATE, 0),
(testutil.FY_MID_DATE + datetime.timedelta(days=1), 25),
(testutil.FY_MID_DATE + datetime.timedelta(days=2), 70),
(testutil.FY_MID_DATE + datetime.timedelta(days=3), 135),
(testutil.FY_MID_DATE + datetime.timedelta(days=4), 135),
])
def test_balance_at_cost_by_date(date, expected):
dates = testutil.date_seq()
jpy_cost = ('0.01', 'USD')
entries = [
testutil.Transaction(date=next(dates), postings=[
('Assets:Cash', 1000, 'JPY', jpy_cost),
('Assets:Cash', 15),
]),
('Assets:Cash', 2000, 'JPY', jpy_cost),
('Assets:Cash', 25),
('Assets:Cash', 3000, 'JPY', jpy_cost),
('Assets:Cash', 35),
]
related = core.RelatedPostings(data.Posting.from_entries(entries))
actual = related.balance_at_cost_by_date(date)
if not expected:
assert actual.is_zero()
else:
assert actual == {'USD': testutil.Amount(expected)}
def test_meta_values_empty():
related = core.RelatedPostings()
assert related.meta_values('key') == set()