summaryrefslogtreecommitdiff
path: root/calc_test.go
diff options
context:
space:
mode:
authorxuri <xuri.me@gmail.com>2022-06-16 00:01:32 +0800
committerxuri <xuri.me@gmail.com>2022-06-16 00:01:32 +0800
commitb69da7606395bb2b05c53512663a13cce80f87d7 (patch)
tree9b14c131a8dbbb62b5a78b2e3782d0406960ac41 /calc_test.go
parent5beeeef570e0d5a09de546dfe369a0f3753cf709 (diff)
ref #65, new formula functions: NETWORKDAYS, NETWORKDAYS.INTL, and WORKDAY
Diffstat (limited to 'calc_test.go')
-rw-r--r--calc_test.go111
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))