summaryrefslogtreecommitdiff
path: root/calc_test.go
diff options
context:
space:
mode:
authorxuri <xuri.me@gmail.com>2022-03-08 00:03:02 +0800
committerxuri <xuri.me@gmail.com>2022-03-08 00:03:02 +0800
commit56aa6b82637b3210be470a8ebac1fdec2b2a6a30 (patch)
tree419760c01fe4dbc4bca48a378461702e37d82d87 /calc_test.go
parent61eb265c29685957bcf16b25dba3d389c548dfee (diff)
ref #65, new formula functions and read boolean data type cell value support
* added 3 new formula functions: BETAINV, BETA.INV, F.INV.RT
Diffstat (limited to 'calc_test.go')
-rw-r--r--calc_test.go46
1 files changed, 46 insertions, 0 deletions
diff --git a/calc_test.go b/calc_test.go
index 80ba8ef..63e5984 100644
--- a/calc_test.go
+++ b/calc_test.go
@@ -784,6 +784,10 @@ func TestCalcCellValue(t *testing.T) {
"=AVERAGEA(A1)": "1",
"=AVERAGEA(A1:A2)": "1.5",
"=AVERAGEA(D2:F9)": "12671.375",
+ // BETAINV
+ "=BETAINV(0.2,4,5,0,1)": "0.303225844664082",
+ // BETA.INV
+ "=BETA.INV(0.2,4,5,0,1)": "0.303225844664082",
// CHIDIST
"=CHIDIST(0.5,3)": "0.918891411654676",
"=CHIDIST(8,3)": "0.0460117056892315",
@@ -859,6 +863,14 @@ func TestCalcCellValue(t *testing.T) {
"=FINV(0.5,4,8)": "0.914645355977072",
"=FINV(0.1,79,86)": "1.32646097270444",
"=FINV(1,40,5)": "0",
+ // F.INV.RT
+ "=F.INV.RT(0.2,1,2)": "3.55555555555555",
+ "=F.INV.RT(0.6,1,2)": "0.380952380952381",
+ "=F.INV.RT(0.6,2,2)": "0.666666666666667",
+ "=F.INV.RT(0.6,4,4)": "0.763454070045235",
+ "=F.INV.RT(0.5,4,8)": "0.914645355977072",
+ "=F.INV.RT(0.1,79,86)": "1.32646097270444",
+ "=F.INV.RT(1,40,5)": "0",
// NORM.DIST
"=NORM.DIST(0.8,1,0.3,TRUE)": "0.252492537546923",
"=NORM.DIST(50,40,20,FALSE)": "0.017603266338215",
@@ -2282,6 +2294,32 @@ func TestCalcCellValue(t *testing.T) {
"=AVERAGE(H1)": "AVERAGE divide by zero",
// AVERAGEA
"=AVERAGEA(H1)": "AVERAGEA divide by zero",
+ // BETAINV
+ "=BETAINV()": "BETAINV requires at least 3 arguments",
+ "=BETAINV(0.2,4,5,0,1,0)": "BETAINV requires at most 5 arguments",
+ "=BETAINV(\"\",4,5,0,1)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=BETAINV(0.2,\"\",5,0,1)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=BETAINV(0.2,4,\"\",0,1)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=BETAINV(0.2,4,5,\"\",1)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=BETAINV(0.2,4,5,0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=BETAINV(0,4,5,0,1)": "#NUM!",
+ "=BETAINV(1,4,5,0,1)": "#NUM!",
+ "=BETAINV(0.2,0,5,0,1)": "#NUM!",
+ "=BETAINV(0.2,4,0,0,1)": "#NUM!",
+ "=BETAINV(0.2,4,5,2,2)": "#NUM!",
+ // BETA.INV
+ "=BETA.INV()": "BETA.INV requires at least 3 arguments",
+ "=BETA.INV(0.2,4,5,0,1,0)": "BETA.INV requires at most 5 arguments",
+ "=BETA.INV(\"\",4,5,0,1)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=BETA.INV(0.2,\"\",5,0,1)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=BETA.INV(0.2,4,\"\",0,1)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=BETA.INV(0.2,4,5,\"\",1)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=BETA.INV(0.2,4,5,0,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=BETA.INV(0,4,5,0,1)": "#NUM!",
+ "=BETA.INV(1,4,5,0,1)": "#NUM!",
+ "=BETA.INV(0.2,0,5,0,1)": "#NUM!",
+ "=BETA.INV(0.2,4,0,0,1)": "#NUM!",
+ "=BETA.INV(0.2,4,5,2,2)": "#NUM!",
// AVERAGEIF
"=AVERAGEIF()": "AVERAGEIF requires at least 2 arguments",
"=AVERAGEIF(H1,\"\")": "AVERAGEIF divide by zero",
@@ -2375,6 +2413,14 @@ func TestCalcCellValue(t *testing.T) {
"=FINV(0,1,2)": "#NUM!",
"=FINV(0.2,0.5,2)": "#NUM!",
"=FINV(0.2,1,0.5)": "#NUM!",
+ // F.INV.RT
+ "=F.INV.RT()": "F.INV.RT requires 3 arguments",
+ "=F.INV.RT(\"\",1,2)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=F.INV.RT(0.2,\"\",2)": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=F.INV.RT(0.2,1,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax",
+ "=F.INV.RT(0,1,2)": "#NUM!",
+ "=F.INV.RT(0.2,0.5,2)": "#NUM!",
+ "=F.INV.RT(0.2,1,0.5)": "#NUM!",
// NORM.DIST
"=NORM.DIST()": "NORM.DIST requires 4 arguments",
// NORMDIST