diff options
Diffstat (limited to 'calc_test.go')
-rw-r--r-- | calc_test.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/calc_test.go b/calc_test.go index 26f8875..a3d9117 100644 --- a/calc_test.go +++ b/calc_test.go @@ -1132,6 +1132,16 @@ func TestCalcCellValue(t *testing.T) { // Web Functions // ENCODEURL "=ENCODEURL(\"https://xuri.me/excelize/en/?q=Save As\")": "https%3A%2F%2Fxuri.me%2Fexcelize%2Fen%2F%3Fq%3DSave%20As", + // Financial Functions + // IPMT + "=IPMT(0.05/12,2,60,50000)": "-205.26988187971995", + "=IPMT(0.035/4,2,8,0,5000,1)": "5.257455237829077", + // PMT + "=PMT(0,8,0,5000,1)": "-625", + "=PMT(0.035/4,8,0,5000,1)": "-600.8520271804658", + // PPMT + "=PPMT(0.05/12,2,60,50000)": "-738.2918003208238", + "=PPMT(0.035/4,2,8,0,5000,1)": "-606.1094824182949", } for formula, expected := range mathCalc { f := prepareCalcData(cellData) @@ -2019,6 +2029,40 @@ func TestCalcCellValue(t *testing.T) { // Web Functions // ENCODEURL "=ENCODEURL()": "ENCODEURL requires 1 argument", + // Financial Functions + // IPMT + "=IPMT()": "IPMT requires at least 4 arguments", + "=IPMT(0,0,0,0,0,0,0)": "IPMT allows at most 6 arguments", + "=IPMT(0,0,0,0,0,2)": "#N/A", + "=IPMT(0,-1,0,0,0,0)": "#N/A", + "=IPMT(0,1,0,0,0,0)": "#N/A", + "=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", + "=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", + // PMT + "=PMT()": "PMT requires at least 3 arguments", + "=PMT(0,0,0,0,0,0)": "PMT allows at most 5 arguments", + "=PMT(0,0,0,0,2)": "#N/A", + "=PMT(\"\",0,0,0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=PMT(0,\"\",0,0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=PMT(0,0,\"\",0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=PMT(0,0,0,\"\",0)": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=PMT(0,0,0,0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax", + // PPMT + "=PPMT()": "PPMT requires at least 4 arguments", + "=PPMT(0,0,0,0,0,0,0)": "PPMT allows at most 6 arguments", + "=PPMT(0,0,0,0,0,2)": "#N/A", + "=PPMT(0,-1,0,0,0,0)": "#N/A", + "=PPMT(0,1,0,0,0,0)": "#N/A", + "=PPMT(\"\",0,0,0,0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=PPMT(0,\"\",0,0,0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=PPMT(0,0,\"\",0,0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=PPMT(0,0,0,\"\",0,0)": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=PPMT(0,0,0,0,\"\",0)": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=PPMT(0,0,0,0,0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax", } for formula, expected := range mathCalcError { f := prepareCalcData(cellData) |