Skip to content

Commit 78559d1

Browse files
committed
parametrize number_type
1 parent 78b0f11 commit 78559d1

File tree

1 file changed

+25
-19
lines changed

1 file changed

+25
-19
lines changed

tests/test_financial.py

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -249,30 +249,36 @@ def test_mirr(self, values, finance_rate, reinvest_rate, expected):
249249
else:
250250
assert_(numpy.isnan(result))
251251

252+
@pytest.mark.parametrize('number_type', [Decimal, float])
252253
@pytest.mark.parametrize(
253254
"args, expected",
254255
[
255-
({'values': [Decimal('-4500'), Decimal('-800'), Decimal('800'), Decimal('800'),
256-
Decimal('600'), Decimal('600'), Decimal('800'), Decimal('800'),
257-
Decimal('700'), Decimal('3000')],
258-
'finance_rate': Decimal('0.08'), 'reinvest_rate': Decimal('0.055')},
259-
Decimal('0.066597175031553548874239618')),
260-
({'values': [Decimal('-120000'), Decimal('39000'), Decimal('30000'), Decimal('21000'),
261-
Decimal('37000'), Decimal('46000')],
262-
'finance_rate': Decimal('0.10'), 'reinvest_rate': Decimal('0.12')},
263-
Decimal('0.126094130365905145828421880')),
264-
({'values': [Decimal('100'), Decimal('200'), Decimal('-50'), Decimal('300'), Decimal('-200')],
265-
'finance_rate': Decimal('0.05'), 'reinvest_rate': Decimal('0.06')},
266-
Decimal('0.342823387842176663647819868')),
267-
({'values': [Decimal('39000'), Decimal('30000'), Decimal('21000'), Decimal('37000'),
268-
Decimal('46000')],
269-
'finance_rate': Decimal('0.10'), 'reinvest_rate': Decimal('0.12')},
270-
numpy.nan),
256+
({'values': ['-4500', '-800', '800', '800', '600', '600', '800', '800', '700', '3000'],
257+
'finance_rate': '0.08', 'reinvest_rate': '0.055'
258+
}, '0.066597175031553548874239618'
259+
),
260+
({'values': ['-120000', '39000', '30000', '21000', '37000', '46000'],
261+
'finance_rate': '0.10', 'reinvest_rate': '0.12'
262+
}, '0.126094130365905145828421880'
263+
),
264+
({'values': ['100', '200', '-50', '300', '-200'],
265+
'finance_rate': '0.05', 'reinvest_rate': '0.06'
266+
}, '0.342823387842176663647819868'
267+
),
268+
({'values': ['39000', '30000', '21000', '37000', '46000'],
269+
'finance_rate': '0.10', 'reinvest_rate': '0.12'
270+
}, numpy.nan
271+
),
271272
],
272273
)
273-
def test_mirr_decimal(self, args, expected):
274-
result = npf.mirr(**args)
275-
assert_equal(result, expected)
274+
def test_mirr_decimal(self, number_type, args, expected):
275+
values = [number_type(v) for v in args['values']]
276+
result = npf.mirr(values, number_type(args['finance_rate']), number_type(args['reinvest_rate']))
277+
278+
if expected is not numpy.nan:
279+
assert_almost_equal(result, number_type(expected), 15)
280+
else:
281+
assert numpy.isnan(result)
276282

277283
def test_mirr_no_real_solution_exception(self):
278284
# Test that if there is no solution because all the cashflows

0 commit comments

Comments
 (0)