diff options
| author | xuri <xuri.me@gmail.com> | 2021-12-12 00:07:01 +0800 |
|---|---|---|
| committer | xuri <xuri.me@gmail.com> | 2021-12-12 00:07:01 +0800 |
| commit | 76aacfda0b7c0b3b21c2e0909b0f24eb9c5769a4 (patch) | |
| tree | 5ca6a89ed4042680b26afa2eca1b5ae15bd5a993 /calc_test.go | |
| parent | b33e39369aa3898d2f6e079240545f9d84abec73 (diff) | |
ref #65: new formula function: SHEETS, and fix SHEET function count issue
Diffstat (limited to 'calc_test.go')
| -rw-r--r-- | calc_test.go | 47 |
1 files changed, 44 insertions, 3 deletions
diff --git a/calc_test.go b/calc_test.go index a2b1294..0aeff70 100644 --- a/calc_test.go +++ b/calc_test.go @@ -1028,7 +1028,11 @@ func TestCalcCellValue(t *testing.T) { "=N(TRUE)": "1", "=N(FALSE)": "0", // SHEET - "=SHEET()": "1", + "=SHEET()": "1", + "=SHEET(\"Sheet1\")": "1", + // SHEETS + "=SHEETS()": "1", + "=SHEETS(A1)": "1", // T "=T(\"text\")": "text", "=T(N(10))": "", @@ -2442,7 +2446,11 @@ func TestCalcCellValue(t *testing.T) { "=NA()": "#N/A", "=NA(1)": "NA accepts no arguments", // SHEET - "=SHEET(1)": "SHEET accepts no arguments", + "=SHEET(\"\",\"\")": "SHEET accepts at most 1 argument", + "=SHEET(\"Sheet2\")": "#N/A", + // SHEETS + "=SHEETS(\"\",\"\")": "SHEETS accepts at most 1 argument", + "=SHEETS(\"Sheet1\")": "#N/A", // T "=T()": "T requires 1 argument", "=T(NA())": "#N/A", @@ -2459,7 +2467,8 @@ func TestCalcCellValue(t *testing.T) { // IFNA "=IFNA()": "IFNA requires 2 arguments", // IFS - "=IFS()": "IFS requires at least 2 arguments", + "=IFS()": "IFS requires at least 2 arguments", + "=IFS(FALSE,FALSE)": "#N/A", // NOT "=NOT()": "NOT requires 1 argument", "=NOT(NOT())": "NOT requires 1 argument", @@ -3758,6 +3767,38 @@ func TestCalcISFORMULA(t *testing.T) { } } +func TestCalcSHEET(t *testing.T) { + f := NewFile() + f.NewSheet("Sheet2") + formulaList := map[string]string{ + "=SHEET(\"Sheet2\")": "2", + "=SHEET(Sheet2!A1)": "2", + "=SHEET(Sheet2!A1:A2)": "2", + } + for formula, expected := range formulaList { + assert.NoError(t, f.SetCellFormula("Sheet1", "A1", formula)) + result, err := f.CalcCellValue("Sheet1", "A1") + assert.NoError(t, err, formula) + assert.Equal(t, expected, result, formula) + } +} + +func TestCalcSHEETS(t *testing.T) { + f := NewFile() + f.NewSheet("Sheet2") + formulaList := map[string]string{ + "=SHEETS(Sheet1!A1:B1)": "1", + "=SHEETS(Sheet1!A1:Sheet1!A1)": "1", + "=SHEETS(Sheet1!A1:Sheet2!A1)": "2", + } + for formula, expected := range formulaList { + assert.NoError(t, f.SetCellFormula("Sheet1", "A1", formula)) + result, err := f.CalcCellValue("Sheet1", "A1") + assert.NoError(t, err, formula) + assert.Equal(t, expected, result, formula) + } +} + func TestCalcZTEST(t *testing.T) { f := NewFile() assert.NoError(t, f.SetSheetRow("Sheet1", "A1", &[]int{4, 5, 2, 5, 8, 9, 3, 2, 3, 8, 9, 5})) |
