public void SumIfShouldCalculateWithExpressionFromSumRangeWithNumericCriteria() { var func = new SumIf(); var args = FunctionsHelper.CreateArgs(FunctionsHelper.CreateArgs(3, 4, 5), 3, (FunctionsHelper.CreateArgs(4, 2, 1))); var result = func.Execute(args, _parsingContext); Assert.AreEqual(4d, result.Result); }
public void SumIfShouldCalculateWithExpression() { var func = new SumIf(); var args = FunctionsHelper.CreateArgs(FunctionsHelper.CreateArgs(3, 4, 5), ">3"); var result = func.Execute(args, _parsingContext); Assert.AreEqual(9d, result.Result); }
public void SumIfShouldCalculateMatchingValuesOnly() { var func = new SumIf(); var args = FunctionsHelper.CreateArgs(FunctionsHelper.CreateArgs(3, 4, 5), "4"); var result = func.Execute(args, _parsingContext); Assert.AreEqual(4d, result.Result); }
public void SumIfWithInvalidArgumentReturnsPoundValue() { var func = new SumIf(); var parsingContext = ParsingContext.Create(); var args = FunctionsHelper.CreateArgs(); var result = func.Execute(args, parsingContext); Assert.AreEqual(eErrorType.Value, ((ExcelErrorValue)result.Result).Type); }
public void SumIfShouldThrowIfCriteriaIsLargerThan255chars() { var longString = "a"; for (var x = 0; x < 256; x++) { longString = string.Concat(longString, "a"); } var func = new SumIf(); var args = FunctionsHelper.CreateArgs(FunctionsHelper.CreateArgs(3, 4, 5), longString, (FunctionsHelper.CreateArgs(3, 2, 1))); var result = func.Execute(args, _parsingContext); }
public void SumIfNumericExpression() { _worksheet.Cells["A1"].Value = null; _worksheet.Cells["A2"].Value = 1d; _worksheet.Cells["A3"].Value = "Not Empty"; var func = new SumIf(); IRangeInfo range = _provider.GetRange(_worksheet.Name, 1, 1, 3, 1); var args = FunctionsHelper.CreateArgs(range, 1d); var result = func.Execute(args, _parsingContext); Assert.AreEqual(1d, result.Result); }
public void SumIfEqualToEmptyString() { _worksheet.Cells["A1"].Value = null; _worksheet.Cells["A2"].Value = string.Empty; _worksheet.Cells["A3"].Value = "Not Empty"; _worksheet.Cells["B1"].Value = 1d; _worksheet.Cells["B2"].Value = 3d; _worksheet.Cells["B3"].Value = 5d; var func = new SumIf(); IRangeInfo range1 = _provider.GetRange(_worksheet.Name, 1, 1, 3, 1); IRangeInfo range2 = _provider.GetRange(_worksheet.Name, 1, 2, 3, 2); var args = FunctionsHelper.CreateArgs(range1, "", range2); var result = func.Execute(args, _parsingContext); Assert.AreEqual(1d, result.Result); }
public void SumIfNonNumeric() { _worksheet.Cells["A1"].Value = "Monday"; _worksheet.Cells["A2"].Value = "Tuesday"; _worksheet.Cells["A3"].Value = "Thursday"; _worksheet.Cells["B1"].Value = 1d; _worksheet.Cells["B2"].Value = 3d; _worksheet.Cells["B3"].Value = 5d; var func = new SumIf(); IRangeInfo range1 = _provider.GetRange(_worksheet.Name, 1, 1, 3, 1); IRangeInfo range2 = _provider.GetRange(_worksheet.Name, 1, 2, 3, 2); var args = FunctionsHelper.CreateArgs(range1, "T*day", range2); var result = func.Execute(args, _parsingContext); Assert.AreEqual(8d, result.Result); }