diff options
author | xuri <xuri.me@gmail.com> | 2022-06-16 00:01:32 +0800 |
---|---|---|
committer | xuri <xuri.me@gmail.com> | 2022-06-16 00:01:32 +0800 |
commit | b69da7606395bb2b05c53512663a13cce80f87d7 (patch) | |
tree | 9b14c131a8dbbb62b5a78b2e3782d0406960ac41 /calc_test.go | |
parent | 5beeeef570e0d5a09de546dfe369a0f3753cf709 (diff) |
ref #65, new formula functions: NETWORKDAYS, NETWORKDAYS.INTL, and WORKDAY
Diffstat (limited to 'calc_test.go')
-rw-r--r-- | calc_test.go | 111 |
1 files changed, 76 insertions, 35 deletions
diff --git a/calc_test.go b/calc_test.go index d5c263e..c7333c5 100644 --- a/calc_test.go +++ b/calc_test.go @@ -5380,7 +5380,7 @@ func TestCalcTTEST(t *testing.T) { } } -func TestCalcWORKDAYdotINTL(t *testing.T) { +func TestCalcNETWORKDAYSandWORKDAY(t *testing.T) { cellData := [][]interface{}{ {"05/01/2019", 43586}, {"09/13/2019", 43721}, @@ -5395,31 +5395,53 @@ func TestCalcWORKDAYdotINTL(t *testing.T) { } f := prepareCalcData(cellData) formulaList := map[string]string{ - "=WORKDAY.INTL(\"12/01/2015\",0)": "42339", - "=WORKDAY.INTL(\"12/01/2015\",25)": "42374", - "=WORKDAY.INTL(\"12/01/2015\",-25)": "42304", - "=WORKDAY.INTL(\"12/01/2015\",25,1)": "42374", - "=WORKDAY.INTL(\"12/01/2015\",25,2)": "42374", - "=WORKDAY.INTL(\"12/01/2015\",25,3)": "42372", - "=WORKDAY.INTL(\"12/01/2015\",25,4)": "42373", - "=WORKDAY.INTL(\"12/01/2015\",25,5)": "42374", - "=WORKDAY.INTL(\"12/01/2015\",25,6)": "42374", - "=WORKDAY.INTL(\"12/01/2015\",25,7)": "42374", - "=WORKDAY.INTL(\"12/01/2015\",25,11)": "42368", - "=WORKDAY.INTL(\"12/01/2015\",25,12)": "42368", - "=WORKDAY.INTL(\"12/01/2015\",25,13)": "42368", - "=WORKDAY.INTL(\"12/01/2015\",25,14)": "42369", - "=WORKDAY.INTL(\"12/01/2015\",25,15)": "42368", - "=WORKDAY.INTL(\"12/01/2015\",25,16)": "42368", - "=WORKDAY.INTL(\"12/01/2015\",25,17)": "42368", - "=WORKDAY.INTL(\"12/01/2015\",25,\"0001100\")": "42374", - "=WORKDAY.INTL(\"01/01/2020\",-123,4)": "43659", - "=WORKDAY.INTL(\"01/01/2020\",123,4,44010)": "44002", - "=WORKDAY.INTL(\"01/01/2020\",-123,4,43640)": "43659", - "=WORKDAY.INTL(\"01/01/2020\",-123,4,43660)": "43658", - "=WORKDAY.INTL(\"01/01/2020\",-123,7,43660)": "43657", - "=WORKDAY.INTL(\"01/01/2020\",123,4,A1:A12)": "44008", - "=WORKDAY.INTL(\"01/01/2020\",123,4,B1:B12)": "44008", + "=NETWORKDAYS(\"01/01/2020\",\"09/12/2020\")": "183", + "=NETWORKDAYS(\"01/01/2020\",\"09/12/2020\",2)": "183", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\")": "183", + "=NETWORKDAYS.INTL(\"09/12/2020\",\"01/01/2020\")": "-183", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",1)": "183", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",2)": "184", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",3)": "184", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",4)": "183", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",5)": "182", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",6)": "182", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",7)": "182", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",11)": "220", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",12)": "220", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",13)": "220", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",14)": "219", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",15)": "219", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",16)": "219", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",17)": "219", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",1,A1:A12)": "178", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",1,B1:B12)": "178", + "=WORKDAY(\"12/01/2015\",25)": "42374", + "=WORKDAY(\"01/01/2020\",123,B1:B12)": "44006", + "=WORKDAY.INTL(\"12/01/2015\",0)": "42339", + "=WORKDAY.INTL(\"12/01/2015\",25)": "42374", + "=WORKDAY.INTL(\"12/01/2015\",-25)": "42304", + "=WORKDAY.INTL(\"12/01/2015\",25,1)": "42374", + "=WORKDAY.INTL(\"12/01/2015\",25,2)": "42374", + "=WORKDAY.INTL(\"12/01/2015\",25,3)": "42372", + "=WORKDAY.INTL(\"12/01/2015\",25,4)": "42373", + "=WORKDAY.INTL(\"12/01/2015\",25,5)": "42374", + "=WORKDAY.INTL(\"12/01/2015\",25,6)": "42374", + "=WORKDAY.INTL(\"12/01/2015\",25,7)": "42374", + "=WORKDAY.INTL(\"12/01/2015\",25,11)": "42368", + "=WORKDAY.INTL(\"12/01/2015\",25,12)": "42368", + "=WORKDAY.INTL(\"12/01/2015\",25,13)": "42368", + "=WORKDAY.INTL(\"12/01/2015\",25,14)": "42369", + "=WORKDAY.INTL(\"12/01/2015\",25,15)": "42368", + "=WORKDAY.INTL(\"12/01/2015\",25,16)": "42368", + "=WORKDAY.INTL(\"12/01/2015\",25,17)": "42368", + "=WORKDAY.INTL(\"12/01/2015\",25,\"0001100\")": "42374", + "=WORKDAY.INTL(\"01/01/2020\",-123,4)": "43659", + "=WORKDAY.INTL(\"01/01/2020\",123,4,44010)": "44002", + "=WORKDAY.INTL(\"01/01/2020\",-123,4,43640)": "43659", + "=WORKDAY.INTL(\"01/01/2020\",-123,4,43660)": "43658", + "=WORKDAY.INTL(\"01/01/2020\",-123,7,43660)": "43657", + "=WORKDAY.INTL(\"01/01/2020\",123,4,A1:A12)": "44008", + "=WORKDAY.INTL(\"01/01/2020\",123,4,B1:B12)": "44008", } for formula, expected := range formulaList { assert.NoError(t, f.SetCellFormula("Sheet1", "C1", formula)) @@ -5428,15 +5450,34 @@ func TestCalcWORKDAYdotINTL(t *testing.T) { assert.Equal(t, expected, result, formula) } calcError := map[string]string{ - "=WORKDAY.INTL()": "WORKDAY.INTL requires at least 2 arguments", - "=WORKDAY.INTL(\"01/01/2020\",123,4,A1:A12,\"\")": "WORKDAY.INTL requires at most 4 arguments", - "=WORKDAY.INTL(\"01/01/2020\",\"\",4,B1:B12)": "strconv.ParseFloat: parsing \"\": invalid syntax", - "=WORKDAY.INTL(\"\",123,4,B1:B12)": "#VALUE!", - "=WORKDAY.INTL(\"01/01/2020\",123,\"\",B1:B12)": "#VALUE!", - "=WORKDAY.INTL(\"01/01/2020\",123,\"000000x\")": "#VALUE!", - "=WORKDAY.INTL(\"01/01/2020\",123,\"0000002\")": "#VALUE!", - "=WORKDAY.INTL(\"January 25, 100\",123)": "#VALUE!", - "=WORKDAY.INTL(-1,123)": "#NUM!", + "=NETWORKDAYS()": "NETWORKDAYS requires at least 2 arguments", + "=NETWORKDAYS(\"01/01/2020\",\"09/12/2020\",2,\"\")": "NETWORKDAYS requires at most 3 arguments", + "=NETWORKDAYS(\"\",\"09/12/2020\",2)": "#VALUE!", + "=NETWORKDAYS(\"01/01/2020\",\"\",2)": "#VALUE!", + "=NETWORKDAYS.INTL()": "NETWORKDAYS.INTL requires at least 2 arguments", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",4,A1:A12,\"\")": "NETWORKDAYS.INTL requires at most 4 arguments", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"January 25, 100\",4)": "#VALUE!", + "=NETWORKDAYS.INTL(\"\",123,4,B1:B12)": "#VALUE!", + "=NETWORKDAYS.INTL(\"01/01/2020\",123,\"000000x\")": "#VALUE!", + "=NETWORKDAYS.INTL(\"01/01/2020\",123,\"0000002\")": "#VALUE!", + "=NETWORKDAYS.INTL(\"January 25, 100\",123)": "#VALUE!", + "=NETWORKDAYS.INTL(\"01/01/2020\",\"09/12/2020\",8)": "#VALUE!", + "=NETWORKDAYS.INTL(-1,123)": "#NUM!", + "=WORKDAY()": "WORKDAY requires at least 2 arguments", + "=WORKDAY(\"01/01/2020\",123,A1:A12,\"\")": "WORKDAY requires at most 3 arguments", + "=WORKDAY(\"01/01/2020\",\"\",B1:B12)": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=WORKDAY(\"\",123,B1:B12)": "#VALUE!", + "=WORKDAY(\"January 25, 100\",123)": "#VALUE!", + "=WORKDAY(-1,123)": "#NUM!", + "=WORKDAY.INTL()": "WORKDAY.INTL requires at least 2 arguments", + "=WORKDAY.INTL(\"01/01/2020\",123,4,A1:A12,\"\")": "WORKDAY.INTL requires at most 4 arguments", + "=WORKDAY.INTL(\"01/01/2020\",\"\",4,B1:B12)": "strconv.ParseFloat: parsing \"\": invalid syntax", + "=WORKDAY.INTL(\"\",123,4,B1:B12)": "#VALUE!", + "=WORKDAY.INTL(\"01/01/2020\",123,\"\",B1:B12)": "#VALUE!", + "=WORKDAY.INTL(\"01/01/2020\",123,\"000000x\")": "#VALUE!", + "=WORKDAY.INTL(\"01/01/2020\",123,\"0000002\")": "#VALUE!", + "=WORKDAY.INTL(\"January 25, 100\",123)": "#VALUE!", + "=WORKDAY.INTL(-1,123)": "#NUM!", } for formula, expected := range calcError { assert.NoError(t, f.SetCellFormula("Sheet1", "C1", formula)) |