summaryrefslogtreecommitdiff
path: root/calc_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'calc_test.go')
-rw-r--r--calc_test.go74
1 files changed, 74 insertions, 0 deletions
diff --git a/calc_test.go b/calc_test.go
index d105b14..74cc627 100644
--- a/calc_test.go
+++ b/calc_test.go
@@ -1139,9 +1139,35 @@ func TestCalcCellValue(t *testing.T) {
// CUMPRINC
"=CUMPRINC(0.05/12,60,50000,1,12,0)": "-9027.762649079885",
"=CUMPRINC(0.05/12,60,50000,13,24,0)": "-9489.640119832635",
+ // DB
+ "=DB(0,1000,5,1)": "0",
+ "=DB(10000,1000,5,1)": "3690",
+ "=DB(10000,1000,5,2)": "2328.39",
+ "=DB(10000,1000,5,1,6)": "1845",
+ "=DB(10000,1000,5,6,6)": "238.52712458788187",
+ // DDB
+ "=DDB(0,1000,5,1)": "0",
+ "=DDB(10000,1000,5,1)": "4000",
+ "=DDB(10000,1000,5,2)": "2400",
+ "=DDB(10000,1000,5,3)": "1440",
+ "=DDB(10000,1000,5,4)": "864",
+ "=DDB(10000,1000,5,5)": "296",
+ // DOLLARDE
+ "=DOLLARDE(1.01,16)": "1.0625",
+ // DOLLARFR
+ "=DOLLARFR(1.0625,16)": "1.01",
+ // EFFECT
+ "=EFFECT(0.1,4)": "0.103812890625",
+ "=EFFECT(0.025,2)": "0.02515625",
// IPMT
"=IPMT(0.05/12,2,60,50000)": "-205.26988187971995",
"=IPMT(0.035/4,2,8,0,5000,1)": "5.257455237829077",
+ // ISPMT
+ "=ISPMT(0.05/12,1,60,50000)": "-204.8611111111111",
+ "=ISPMT(0.05/12,2,60,50000)": "-201.38888888888886",
+ "=ISPMT(0.05/12,2,1,50000)": "208.33333333333334",
+ // NOMINAL
+ "=NOMINAL(0.025,12)": "0.024718035238113",
// PMT
"=PMT(0,8,0,5000,1)": "-625",
"=PMT(0.035/4,8,0,5000,1)": "-600.8520271804658",
@@ -2058,6 +2084,42 @@ func TestCalcCellValue(t *testing.T) {
"=CUMPRINC(0,0,0,\"\",0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
"=CUMPRINC(0,0,0,0,\"\",0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
"=CUMPRINC(0,0,0,0,0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ // DB
+ "=DB()": "DB requires at least 4 arguments",
+ "=DB(0,0,0,0,0,0)": "DB allows at most 5 arguments",
+ "=DB(-1,0,0,0)": "#N/A",
+ "=DB(\"\",0,0,0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=DB(0,\"\",0,0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=DB(0,0,\"\",0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=DB(0,0,0,\"\",0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=DB(0,0,0,0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ // DDB
+ "=DDB()": "DDB requires at least 4 arguments",
+ "=DDB(0,0,0,0,0,0)": "DDB allows at most 5 arguments",
+ "=DDB(-1,0,0,0)": "#N/A",
+ "=DDB(\"\",0,0,0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=DDB(0,\"\",0,0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=DDB(0,0,\"\",0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=DDB(0,0,0,\"\",0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=DDB(0,0,0,0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ // DOLLARDE
+ "=DOLLARDE()": "DOLLARDE requires 2 arguments",
+ "=DOLLARDE(\"\",0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=DOLLARDE(0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=DOLLARDE(0,-1)": "#NUM!",
+ "=DOLLARDE(0,0)": "#DIV/0!",
+ // DOLLARFR
+ "=DOLLARFR()": "DOLLARFR requires 2 arguments",
+ "=DOLLARFR(\"\",0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=DOLLARFR(0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=DOLLARFR(0,-1)": "#NUM!",
+ "=DOLLARFR(0,0)": "#DIV/0!",
+ // EFFECT
+ "=EFFECT()": "EFFECT requires 2 arguments",
+ "=EFFECT(\"\",0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=EFFECT(0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=EFFECT(0,0)": "#NUM!",
+ "=EFFECT(1,0)": "#NUM!",
// IPMT
"=IPMT()": "IPMT requires at least 4 arguments",
"=IPMT(0,0,0,0,0,0,0)": "IPMT allows at most 6 arguments",
@@ -2070,6 +2132,18 @@ func TestCalcCellValue(t *testing.T) {
"=IPMT(0,0,0,\"\",0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
"=IPMT(0,0,0,0,\"\",0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
"=IPMT(0,0,0,0,0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ // ISPMT
+ "=ISPMT()": "ISPMT requires 4 arguments",
+ "=ISPMT(\"\",0,0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=ISPMT(0,\"\",0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=ISPMT(0,0,\"\",0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=ISPMT(0,0,0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ // NOMINAL
+ "=NOMINAL()": "NOMINAL requires 2 arguments",
+ "=NOMINAL(\"\",0)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=NOMINAL(0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=NOMINAL(0,0)": "#NUM!",
+ "=NOMINAL(1,0)": "#NUM!",
// PMT
"=PMT()": "PMT requires at least 3 arguments",
"=PMT(0,0,0,0,0,0)": "PMT allows at most 5 arguments",