summaryrefslogtreecommitdiff
path: root/calc_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'calc_test.go')
-rw-r--r--calc_test.go120
1 files changed, 66 insertions, 54 deletions
diff --git a/calc_test.go b/calc_test.go
index ad3366e..d0b1c64 100644
--- a/calc_test.go
+++ b/calc_test.go
@@ -97,72 +97,84 @@ func TestCalcCellValue(t *testing.T) {
"=ATANH(0.5)": "0.549306144334055",
"=ATANH(ATANH(0))": "0",
// ATAN2
- "=ATAN2(1,1)": "0.785398163397448",
- "=ATAN2(1,-1)": "-0.785398163397448",
- "=ATAN2(4,0)": "0",
+ "=ATAN2(1,1)": "0.785398163397448",
+ "=ATAN2(1,-1)": "-0.785398163397448",
+ "=ATAN2(4,0)": "0",
+ "=ATAN2(4,ATAN2(4,0))": "0",
// BASE
- "=BASE(12,2)": "1100",
- "=BASE(12,2,8)": "00001100",
- "=BASE(100000,16)": "186A0",
+ "=BASE(12,2)": "1100",
+ "=BASE(12,2,8)": "00001100",
+ "=BASE(100000,16)": "186A0",
+ "=BASE(BASE(12,2),16)": "44C",
// CEILING
- "=CEILING(22.25,0.1)": "22.3",
- "=CEILING(22.25,0.5)": "22.5",
- "=CEILING(22.25,1)": "23",
- "=CEILING(22.25,10)": "30",
- "=CEILING(22.25,20)": "40",
- "=CEILING(-22.25,-0.1)": "-22.3",
- "=CEILING(-22.25,-1)": "-23",
- "=CEILING(-22.25,-5)": "-25",
- "=CEILING(22.25)": "23",
+ "=CEILING(22.25,0.1)": "22.3",
+ "=CEILING(22.25,0.5)": "22.5",
+ "=CEILING(22.25,1)": "23",
+ "=CEILING(22.25,10)": "30",
+ "=CEILING(22.25,20)": "40",
+ "=CEILING(-22.25,-0.1)": "-22.3",
+ "=CEILING(-22.25,-1)": "-23",
+ "=CEILING(-22.25,-5)": "-25",
+ "=CEILING(22.25)": "23",
+ "=CEILING(CEILING(22.25,0.1),0.1)": "22.3",
// _xlfn.CEILING.MATH
- "=_xlfn.CEILING.MATH(15.25,1)": "16",
- "=_xlfn.CEILING.MATH(15.25,0.1)": "15.3",
- "=_xlfn.CEILING.MATH(15.25,5)": "20",
- "=_xlfn.CEILING.MATH(-15.25,1)": "-15",
- "=_xlfn.CEILING.MATH(-15.25,1,1)": "-15", // should be 16
- "=_xlfn.CEILING.MATH(-15.25,10)": "-10",
- "=_xlfn.CEILING.MATH(-15.25)": "-15",
- "=_xlfn.CEILING.MATH(-15.25,-5,-1)": "-10",
+ "=_xlfn.CEILING.MATH(15.25,1)": "16",
+ "=_xlfn.CEILING.MATH(15.25,0.1)": "15.3",
+ "=_xlfn.CEILING.MATH(15.25,5)": "20",
+ "=_xlfn.CEILING.MATH(-15.25,1)": "-15",
+ "=_xlfn.CEILING.MATH(-15.25,1,1)": "-15", // should be 16
+ "=_xlfn.CEILING.MATH(-15.25,10)": "-10",
+ "=_xlfn.CEILING.MATH(-15.25)": "-15",
+ "=_xlfn.CEILING.MATH(-15.25,-5,-1)": "-10",
+ "=_xlfn.CEILING.MATH(_xlfn.CEILING.MATH(15.25,1),1)": "16",
// _xlfn.CEILING.PRECISE
- "=_xlfn.CEILING.PRECISE(22.25,0.1)": "22.3",
- "=_xlfn.CEILING.PRECISE(22.25,0.5)": "22.5",
- "=_xlfn.CEILING.PRECISE(22.25,1)": "23",
- "=_xlfn.CEILING.PRECISE(22.25)": "23",
- "=_xlfn.CEILING.PRECISE(22.25,10)": "30",
- "=_xlfn.CEILING.PRECISE(22.25,0)": "0",
- "=_xlfn.CEILING.PRECISE(-22.25,1)": "-22",
- "=_xlfn.CEILING.PRECISE(-22.25,-1)": "-22",
- "=_xlfn.CEILING.PRECISE(-22.25,5)": "-20",
+ "=_xlfn.CEILING.PRECISE(22.25,0.1)": "22.3",
+ "=_xlfn.CEILING.PRECISE(22.25,0.5)": "22.5",
+ "=_xlfn.CEILING.PRECISE(22.25,1)": "23",
+ "=_xlfn.CEILING.PRECISE(22.25)": "23",
+ "=_xlfn.CEILING.PRECISE(22.25,10)": "30",
+ "=_xlfn.CEILING.PRECISE(22.25,0)": "0",
+ "=_xlfn.CEILING.PRECISE(-22.25,1)": "-22",
+ "=_xlfn.CEILING.PRECISE(-22.25,-1)": "-22",
+ "=_xlfn.CEILING.PRECISE(-22.25,5)": "-20",
+ "=_xlfn.CEILING.PRECISE(_xlfn.CEILING.PRECISE(22.25,0.1),5)": "25",
// COMBIN
- "=COMBIN(6,1)": "6",
- "=COMBIN(6,2)": "15",
- "=COMBIN(6,3)": "20",
- "=COMBIN(6,4)": "15",
- "=COMBIN(6,5)": "6",
- "=COMBIN(6,6)": "1",
- "=COMBIN(0,0)": "1",
+ "=COMBIN(6,1)": "6",
+ "=COMBIN(6,2)": "15",
+ "=COMBIN(6,3)": "20",
+ "=COMBIN(6,4)": "15",
+ "=COMBIN(6,5)": "6",
+ "=COMBIN(6,6)": "1",
+ "=COMBIN(0,0)": "1",
+ "=COMBIN(6,COMBIN(0,0))": "6",
// _xlfn.COMBINA
- "=_xlfn.COMBINA(6,1)": "6",
- "=_xlfn.COMBINA(6,2)": "21",
- "=_xlfn.COMBINA(6,3)": "56",
- "=_xlfn.COMBINA(6,4)": "126",
- "=_xlfn.COMBINA(6,5)": "252",
- "=_xlfn.COMBINA(6,6)": "462",
- "=_xlfn.COMBINA(0,0)": "0",
+ "=_xlfn.COMBINA(6,1)": "6",
+ "=_xlfn.COMBINA(6,2)": "21",
+ "=_xlfn.COMBINA(6,3)": "56",
+ "=_xlfn.COMBINA(6,4)": "126",
+ "=_xlfn.COMBINA(6,5)": "252",
+ "=_xlfn.COMBINA(6,6)": "462",
+ "=_xlfn.COMBINA(0,0)": "0",
+ "=_xlfn.COMBINA(0,_xlfn.COMBINA(0,0))": "0",
// COS
"=COS(0.785398163)": "0.707106781467586",
"=COS(0)": "1",
+ "=COS(COS(0))": "0.54030230586814",
// COSH
- "=COSH(0)": "1",
- "=COSH(0.5)": "1.127625965206381",
- "=COSH(-2)": "3.762195691083632",
+ "=COSH(0)": "1",
+ "=COSH(0.5)": "1.127625965206381",
+ "=COSH(-2)": "3.762195691083632",
+ "=COSH(COSH(0))": "1.543080634815244",
// _xlfn.COT
- "=_xlfn.COT(0.785398163397448)": "0.999999999999999",
+ "=_xlfn.COT(0.785398163397448)": "1.000000000000001",
+ "=_xlfn.COT(_xlfn.COT(0.45))": "-0.545473116787229",
// _xlfn.COTH
- "=_xlfn.COTH(-3.14159265358979)": "-0.99627207622075",
+ "=_xlfn.COTH(-3.14159265358979)": "-1.003741873197322",
+ "=_xlfn.COTH(_xlfn.COTH(1))": "1.156014018113954",
// _xlfn.CSC
"=_xlfn.CSC(-6)": "3.578899547254406",
"=_xlfn.CSC(1.5707963267949)": "1",
+ "=_xlfn.CSC(_xlfn.CSC(1))": "1.077851840310882",
// _xlfn.CSCH
"=_xlfn.CSCH(-3.14159265358979)": "-0.086589537530047",
// _xlfn.DECIMAL
@@ -558,7 +570,7 @@ func TestCalcCellValue(t *testing.T) {
"=BASE(1,2,3,4)": "BASE allows at most 3 arguments",
"=BASE(1,1)": "radix must be an integer >= 2 and <= 36",
`=BASE("X",2)`: "strconv.ParseFloat: parsing \"X\": invalid syntax",
- `=BASE(1,"X")`: "strconv.Atoi: parsing \"X\": invalid syntax",
+ `=BASE(1,"X")`: "strconv.ParseFloat: parsing \"X\": invalid syntax",
`=BASE(1,2,"X")`: "strconv.Atoi: parsing \"X\": invalid syntax",
// CEILING
"=CEILING()": "CEILING requires at least 1 argument",
@@ -576,7 +588,7 @@ func TestCalcCellValue(t *testing.T) {
"=_xlfn.CEILING.PRECISE()": "CEILING.PRECISE requires at least 1 argument",
"=_xlfn.CEILING.PRECISE(1,2,3)": "CEILING.PRECISE allows at most 2 arguments",
`=_xlfn.CEILING.PRECISE("X",2)`: "strconv.ParseFloat: parsing \"X\": invalid syntax",
- `=_xlfn.CEILING.PRECISE(1,"X")`: "#VALUE!",
+ `=_xlfn.CEILING.PRECISE(1,"X")`: "strconv.ParseFloat: parsing \"X\": invalid syntax",
// COMBIN
"=COMBIN()": "COMBIN requires 2 argument",
"=COMBIN(-1,1)": "COMBIN requires number >= number_chosen",
@@ -1009,7 +1021,7 @@ func TestAND(t *testing.T) {
})
fn := formulaFuncs{}
result := fn.AND(argsList)
- assert.Equal(t, result.String, "TRUE")
+ assert.Equal(t, result.String, "")
assert.Empty(t, result.Error)
}