assay
test suite

financial-timevalue

76 tests · 48 with documented divergences

Test Subject Formula Category DVs
cumipmt-first-year-mortgage CUMIPMT =CUMIPMT(0.05/12, 360, 100000, 1, 12, 0) value
cumipmt-last-year-mortgage CUMIPMT =CUMIPMT(0.05/12, 360, 100000, 349, 360, 0) value
cumipmt-invalid-period CUMIPMT =CUMIPMT(0.05/12, 360, 100000, 0, 12, 0) value 2
cumprinc-first-year-mortgage CUMPRINC =CUMPRINC(0.05/12, 360, 100000, 1, 12, 0) value
cumprinc-full-life-equals-principal CUMPRINC =CUMPRINC(0.05/12, 360, 100000, 1, 360, 0) value
cumprinc-invalid-type CUMPRINC =CUMPRINC(0.05/12, 360, 100000, 1, 12, 2) value 3
db-first-period DB =DB(1000000, 100000, 6, 1, 12) value 1
db-second-period DB =DB(1000000, 100000, 6, 2, 12) value 1
db-partial-first-month DB =DB(1000000, 100000, 6, 1, 7) value
ddb-period-1 DDB =DDB(1000, 100, 10, 1) value 2
ddb-period-2 DDB =DDB(1000, 100, 10, 2) value 3
ddb-custom-factor DDB =DDB(2400, 300, 10, 1, 1.5) value 2
ddb-salvage-floor DDB =DDB(1000, 100, 10, 10) value
effect-monthly-compounding EFFECT =EFFECT(0.12, 12) value 5
effect-annual-compounding EFFECT =EFFECT(0.05, 1) value 2
effect-invalid-periods EFFECT =EFFECT(0.05, 0) value 2
fv-annuity-10yr FV =FV(0.06, 10, -1000) value 4
fv-lump-sum FV =FV(0.05, 20, 0, -10000) value 5
fv-zero-rate FV =FV(0, 10, -100) value 1
fvschedule-three-rates FVSCHEDULE =FVSCHEDULE(1000, {0.05, 0.06, 0.07}) value 3
fvschedule-zero-rate-in-schedule FVSCHEDULE =FVSCHEDULE(1000, {0.1, 0, 0.1}) value 2
fvschedule-single-rate FVSCHEDULE =FVSCHEDULE(500, {0.1}) value 1
ipmt-first-period-mortgage IPMT =IPMT(0.05/12, 1, 360, -200000) value 6
ipmt-last-period-mortgage IPMT =IPMT(0.05/12, 360, 360, -200000) value
ipmt-invalid-period IPMT =IPMT(0.05/12, 0, 360, -200000) value 3
irr-simple-project IRR =IRR(A1:A6) value
irr-growing-cashflows IRR =IRR(A1:A4) value
irr-no-sign-change IRR =IRR(A1:A3) value 2
ispmt-mid-loan ISPMT =ISPMT(0.1/12, 1, 36, 8000000) value
ispmt-first-period ISPMT =ISPMT(0.05, 0, 5, -1000) value 1
ispmt-last-period ISPMT =ISPMT(0.05, 5, 5, -1000) value 1
mirr-standard MIRR =MIRR(A1:A6, 0.1, 0.12) value
mirr-equal-rates MIRR =MIRR(A1:A4, 0.1, 0.1) value
mirr-no-sign-change MIRR =MIRR(A1:A3, 0.1, 0.12) value 2
nominal-monthly NOMINAL =NOMINAL(0.126825030131969, 12) value 2
nominal-annual NOMINAL =NOMINAL(0.05, 1) value 2
nominal-invalid-rate NOMINAL =NOMINAL(-0.05, 4) value 2
nper-mortgage-like NPER =NPER(0.05/12, -1073.64, 200000) value
nper-zero-rate NPER =NPER(0, -100, 1000) value 1
nper-impossible NPER =NPER(0.1, -1, 10000) value 1
npv-five-year-annuity NPV =NPV(0.1, -1000, 300, 300, 300, 300, 300) value
npv-single-cashflow NPV =NPV(0.1, 100) value 3
npv-zero-rate NPV =NPV(0, 100, 200, 300) value
pduration-double-money-10pct PDURATION =PDURATION(0.1, 1000, 2000) value 5
pduration-no-growth-needed PDURATION =PDURATION(0.05, 1000, 1000) value 1
pduration-invalid-rate PDURATION =PDURATION(0, 1000, 2000) value 1
pmt-monthly-mortgage PMT =PMT(0.05/12, 360, -200000) value 5
pmt-zero-rate PMT =PMT(0, 12, 12000) value 1
pmt-savings-goal PMT =PMT(0.06/12, 360, 0, 1000000) value
ppmt-first-period-mortgage PPMT =PPMT(0.05/12, 1, 360, -200000) value
ppmt-ipmt-plus-ppmt-equals-pmt PPMT =PPMT(0.05/12, 5, 360, -200000) + IPMT(0.05/12, 5, 360, -200000) value 8
ppmt-invalid-period PPMT =PPMT(0.05/12, 361, 360, -200000) value 3
pv-annuity-textbook PV =PV(0.06, 10, -1000) value 4
pv-lump-sum PV =PV(0.1, 5, 0, -1000) value 4
pv-zero-rate PV =PV(0, 10, -100) value
rate-mortgage-implied RATE =RATE(360, -1073.64, 200000) value
rate-zero-payment RATE =RATE(10, 0, -500, 1000) value
rate-unreachable RATE =RATE(10, 100, 100) value
rri-double-in-8-years RRI =RRI(8, 1, 2) value 4
rri-no-growth RRI =RRI(5, 1000, 1000) value 1
rri-invalid-periods RRI =RRI(0, 1000, 2000) value
sln-textbook SLN =SLN(1000, 100, 10) value 1
sln-no-salvage SLN =SLN(5000, 0, 5) value 1
sln-zero-life SLN =SLN(1000, 100, 0) value 1
syd-period-1 SYD =SYD(1000, 100, 10, 1) value 5
syd-last-period SYD =SYD(1000, 100, 10, 10) value 5
syd-invalid-period SYD =SYD(1000, 100, 10, 11) value 2
vdb-first-day VDB =VDB(2400, 300, 10*365, 0, 1) value
vdb-first-year VDB =VDB(2400, 300, 10, 0, 1) value 1
vdb-no-switch VDB =VDB(2400, 300, 10, 0, 10, 2, TRUE) value
xirr-simple-project XIRR =XIRR(A1:A5, B1:B5) value
xirr-with-guess XIRR =XIRR(A1:A3, B1:B3, 0.1) value
xirr-no-sign-change XIRR =XIRR(A1:A2, B1:B2) value 2
xnpv-standard XNPV =XNPV(0.09, A1:A5, B1:B5) value
xnpv-single-future-flow XNPV =XNPV(0.1, A1:A2, B1:B2) value
xnpv-mismatched-lengths XNPV =XNPV(0.1, A1:A3, B1:B2) value 3