Exemple #1
0
        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 Brackets_Validation_Test_With_Bad_Result(string value)
 {
     Assert.AreEqual(false, _validator.BracketsValidation(value));
 }