import pytest from src.masterdata.service import calculate_pmt def test_calculate_pmt_zero_rate(): # PMT = -PV / nper when rate is 0 pv = 1000 nper = 10 rate = 0 result = calculate_pmt(rate, nper, pv) assert result == -100 def test_calculate_pmt_standard(): # Example: Loan 1000, 5% rate, 2 periods # PMT = -1000 * (0.05 * (1.05)^2) / ((1.05)^2 - 1) # PMT = -1000 * (0.05 * 1.1025) / (0.1025) # PMT = -1000 * (0.055125) / (0.1025) = -537.8048... result = calculate_pmt(5, 2, 1000) assert round(result, 2) == -537.80 def test_calculate_pmt_percentage(): # If rate > 1, it divides by 100 result_5 = calculate_pmt(5, 10, 1000) result_05 = calculate_pmt(0.05, 10, 1000) assert result_5 == result_05