private bool Evaluate(object obj, string expression) { double?candidate = default(double?); if (IsNumeric(obj)) { candidate = ConvertUtil.GetValueDouble(obj); } if (candidate.HasValue) { return(_numericExpressionEvaluator.Evaluate(candidate.Value, expression)); } return(_wildCardValueMatcher.IsMatch(expression, obj.ToString()) == 0); }
private double CalculateWithSumRange(IEnumerable <FunctionArgument> range, string criteria, IEnumerable <FunctionArgument> sumRange) { var retVal = 0d; var flattenedRange = ArgsToDoubleEnumerable(range); var flattenedSumRange = ArgsToDoubleEnumerable(sumRange); for (var x = 0; x < flattenedRange.Count(); x++) { var candidate = flattenedSumRange.ElementAt(x); if (_evaluator.Evaluate(flattenedRange.ElementAt(x), criteria)) { retVal += Convert.ToDouble(candidate); } } return(retVal); }
protected bool Evaluate(object obj, object expression) { double?candidate = default(double?); if (IsNumeric(obj)) { candidate = ConvertUtil.GetValueDouble(obj); } if (candidate.HasValue && expression is string) { return(_numericExpressionEvaluator.Evaluate(candidate.Value, expression.ToString())); } if (obj == null) { return(false); } return(_wildCardValueMatcher.IsMatch(expression, obj.ToString()) == 0); }
public void EvaluateShouldReturnTrueIfOperandsAreEqual() { var result = _evaluator.Evaluate("1", "1"); Assert.IsTrue(result); }