1package sheet23import "testing"45func TestFinanceFunctions(t *testing.T) {6 checkFormulas(t, fixture(t), []fnCase{7 {"=PMT(0.05/12, 360, 200000)", num(-1073.6432460242795)},8 {"=PMT(0, 10, 1000)", num(-100)},9 {"=PMT(0.05, 0, 1000)", ErrNum},10 {"=PV(0.05/12, 360, -1000)", num(186281.61704607523)},11 {"=PV(0, 10, -100)", num(1000)},12 {"=FV(0.05, 10, -100)", num(1257.789253554884)},13 {"=FV(0.05, 10, -100, 0, 1)", num(1320.6787162326282)},14 {"=FV(0, 10, -100, -500)", num(1500)},15 {"=NPER(0.01, -1000, 10000)", num(10.58864445942323)},16 {"=NPER(0, -100, 1000)", num(10)},17 {"=NPER(0.01, 100, 10000)", num(-69.6607168935748)},18 {"=NPER(-1, 100, 10000)", ErrNum},19 {"=RATE(360, -1073.6432460242795, 200000)", num(0.05 / 12)},20 {"=RATE(10, 0, 0)", ErrNum},21 {"=NPV(0.1, H1:H4)", num(-19.124376750222126)},22 {"=NPV(-1, 100)", ErrDiv0},23 {"=IRR(H1:H4)", num(0.08896339469335)},24 {"=IRR(C1:C5)", ErrNum}, // no negative flow25 })26}