MCPcopy
hub / github.com/qax-os/excelize / TestCalcMATCH

Function TestCalcMATCH

calc_test.go:5927–5968  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

5925}
5926
5927func TestCalcMATCH(t *testing.T) {
5928 f := NewFile()
5929 for cell, row := range map[string][]interface{}{
5930 "A1": {"cccc", 7, 4, 16},
5931 "A2": {"dddd", 2, 6, 11},
5932 "A3": {"aaaa", 4, 7, 10},
5933 "A4": {"bbbb", 1, 10, 7},
5934 "A5": {"eeee", 8, 11, 6},
5935 "A6": {nil, 11, 16, 4},
5936 } {
5937 assert.NoError(t, f.SetSheetRow("Sheet1", cell, &row))
5938 }
5939 formulaList := map[string]string{
5940 "MATCH(\"aaaa\",A1:A6,0)": "3",
5941 "MATCH(\"*b\",A1:A5,0)": "4",
5942 "MATCH(\"?eee\",A1:A5,0)": "5",
5943 "MATCH(\"?*?e\",A1:A5,0)": "5",
5944 "MATCH(\"aaaa\",A1:A6,1)": "3",
5945 "MATCH(10,B1:B6)": "5",
5946 "MATCH(8,C1:C6,1)": "3",
5947 "MATCH(6,B1:B6,-1)": "1",
5948 "MATCH(10,D1:D6,-1)": "3",
5949 "MATCH(-10,D1:D6,-1)": "6",
5950 }
5951 for formula, expected := range formulaList {
5952 assert.NoError(t, f.SetCellFormula("Sheet1", "E1", formula))
5953 result, err := f.CalcCellValue("Sheet1", "E1")
5954 assert.NoError(t, err, formula)
5955 assert.Equal(t, expected, result, formula)
5956 }
5957 calcError := map[string]string{
5958 "MATCH(3,C1:C6,1)": "#N/A",
5959 "MATCH(5,C1:C6,-1)": "#N/A",
5960 }
5961 for formula, expected := range calcError {
5962 assert.NoError(t, f.SetCellFormula("Sheet1", "E1", formula))
5963 result, err := f.CalcCellValue("Sheet1", "E1")
5964 assert.EqualError(t, err, expected, formula)
5965 assert.Equal(t, expected, result, formula)
5966 }
5967 assert.Equal(t, newErrorFormulaArg(formulaErrorNA, formulaErrorNA), calcMatch(2, nil, []formulaArg{}))
5968}
5969
5970func TestCalcISFORMULA(t *testing.T) {
5971 f := NewFile()

Callers

nothing calls this directly

Calls 6

SetSheetRowMethod · 0.95
SetCellFormulaMethod · 0.95
CalcCellValueMethod · 0.95
NewFileFunction · 0.85
newErrorFormulaArgFunction · 0.85
calcMatchFunction · 0.85

Tested by

no test coverage detected