(t *testing.T)
| 5925 | } |
| 5926 | |
| 5927 | func 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 | |
| 5970 | func TestCalcISFORMULA(t *testing.T) { |
| 5971 | f := NewFile() |
nothing calls this directly
no test coverage detected