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 AvailableOperations_Validation_Test_With_Good_Result(string value) { Assert.AreEqual(true, _validator.ValidateAvailableOperation(value, _binaryOperations)); }