diff options
Diffstat (limited to 'calc_test.go')
-rw-r--r-- | calc_test.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/calc_test.go b/calc_test.go index fa216c9..80ba8ef 100644 --- a/calc_test.go +++ b/calc_test.go @@ -851,6 +851,14 @@ func TestCalcCellValue(t *testing.T) { "=EXPONDIST(0.5,1,TRUE)": "0.393469340287367", "=EXPONDIST(0.5,1,FALSE)": "0.606530659712633", "=EXPONDIST(2,1,TRUE)": "0.864664716763387", + // FINV + "=FINV(0.2,1,2)": "3.55555555555555", + "=FINV(0.6,1,2)": "0.380952380952381", + "=FINV(0.6,2,2)": "0.666666666666667", + "=FINV(0.6,4,4)": "0.763454070045235", + "=FINV(0.5,4,8)": "0.914645355977072", + "=FINV(0.1,79,86)": "1.32646097270444", + "=FINV(1,40,5)": "0", // NORM.DIST "=NORM.DIST(0.8,1,0.3,TRUE)": "0.252492537546923", "=NORM.DIST(50,40,20,FALSE)": "0.017603266338215", @@ -2359,6 +2367,14 @@ func TestCalcCellValue(t *testing.T) { "=EXPONDIST(0,1,\"\")": "strconv.ParseBool: parsing \"\": invalid syntax", "=EXPONDIST(-1,1,TRUE)": "#NUM!", "=EXPONDIST(1,0,TRUE)": "#NUM!", + // FINV + "=FINV()": "FINV requires 3 arguments", + "=FINV(\"\",1,2)": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=FINV(0.2,\"\",2)": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=FINV(0.2,1,\"\")": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=FINV(0,1,2)": "#NUM!", + "=FINV(0.2,0.5,2)": "#NUM!", + "=FINV(0.2,1,0.5)": "#NUM!", // NORM.DIST "=NORM.DIST()": "NORM.DIST requires 4 arguments", // NORMDIST @@ -4220,6 +4236,38 @@ func TestGetYearDays(t *testing.T) { } } +func TestCalcD1mach(t *testing.T) { + assert.Equal(t, 0.0, d1mach(6)) +} + +func TestCalcChebyshevInit(t *testing.T) { + assert.Equal(t, 0, chebyshevInit(0, 0, nil)) + assert.Equal(t, 0, chebyshevInit(1, 0, []float64{0})) +} + +func TestCalcChebyshevEval(t *testing.T) { + assert.True(t, math.IsNaN(chebyshevEval(0, 0, nil))) +} + +func TestCalcLgammacor(t *testing.T) { + assert.True(t, math.IsNaN(lgammacor(9))) + assert.Equal(t, 4.930380657631324e-32, lgammacor(3.7451940309632633e+306)) + assert.Equal(t, 8.333333333333334e-10, lgammacor(10e+07)) +} + +func TestCalcLgammaerr(t *testing.T) { + assert.True(t, math.IsNaN(logrelerr(-2))) +} + +func TestCalcLogBeta(t *testing.T) { + assert.True(t, math.IsNaN(logBeta(-1, -1))) + assert.Equal(t, math.MaxFloat64, logBeta(0, 0)) +} + +func TestCalcBetainvProbIterator(t *testing.T) { + assert.Equal(t, 1.0, betainvProbIterator(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, true)) +} + func TestNestedFunctionsWithOperators(t *testing.T) { f := NewFile() formulaList := map[string]string{ |