public T Calculate(string expression) { try { expression = _formatter.FormatExpression(expression); if (!_validator.BracketsValidation(expression)) { throw new ExpressionFormatException("В данном выражении не одинаковое количество открытых и закрытых скобок."); } if (!_validator.ValidateAvailableOperation(expression, _parser.AvailableOperations)) { throw new ExpressionFormatException("В данном выражении обнаружены операции, которые в данный момент не определены."); } var reverseExpression = _parser.Parse(expression); return(_parser.Calculate(reverseExpression)); } catch (Exception ex) { throw ex; } }
public void Calculate_Expression_With_Two_Operands_Test() { var expression = "2+3"; var reverseExpression = _parser.Parse(expression); var result = _parser.Calculate(reverseExpression); Assert.AreEqual(5, result); }