static void Main(string[] args) { var mathOperationsContainer = new MathOperationsContainer(); var parser = new Parser(); var notationConverter = new NotationConverter(); var mathProcessor = new MathProcessor(); var calculator = new MathCalculator(parser, notationConverter, mathProcessor, mathOperationsContainer); Console.WriteLine("Calculator"); Console.WriteLine("To complete the work, type exit."); while (true) { Console.Write("Enter a math expression: "); var expression = Console.ReadLine(); if (expression == "exit") { Console.WriteLine("Work completed."); break; } var result = calculator.Calculate(expression); Console.WriteLine("Result: {0}", result); } }
public void MathOperationsContainer_returns_true_for_unary_minus_operation_by_keyword() { var mathOperationsContainer = new MathOperationsContainer(); var keyword = "~"; var result = mathOperationsContainer.ContainsOperation(keyword); Assert.True(result); }
public void MathOperationsContainer_returns_false_for_wrong_keyword() { var mathOperationsContainer = new MathOperationsContainer(); var keyword = "&"; var result = mathOperationsContainer.ContainsOperation(keyword); Assert.False(result); }
public void MathOperationsContainer_returns_default_keyword_for_unknown_value_and_unary() { var mathOperationsContainer = new MathOperationsContainer(); var operationCharacteristics = new OperationCharacteristics("&", OperationType.Unary); var keyword = mathOperationsContainer.GetKeywordOrDefault(operationCharacteristics); Assert.Null(keyword); }
public void MathOperationsContainer_returns_keyword_of_unary_minus_operation_by_characteristics() { var mathOperationsContainer = new MathOperationsContainer(); var operationCharacteristics = new OperationCharacteristics("-", OperationType.Unary); var keyword = mathOperationsContainer.GetKeywordOrDefault(operationCharacteristics); Assert.Equal("~", keyword); }
public void MathOperationsContainer_returns_default_operation_by_wrong_keyword() { var mathOperationsContainer = new MathOperationsContainer(); var keyword = "&"; var mathOperation = mathOperationsContainer.GetOperationOrDefault(keyword); Assert.Null(mathOperation); }
public void MathOperationsContainer_returns_unary_minus_operation_by_keyword() { var mathOperationsContainer = new MathOperationsContainer(); var keyword = "~"; var stack = new Stack <double>(); stack.Push(8.00); var mathOperation = mathOperationsContainer.GetOperationOrDefault(keyword); mathOperation.Operate(stack); Assert.Equal(1, mathOperation.Priority); Assert.Equal(OperationType.Unary, mathOperation.Type); Assert.Equal(-8.00, stack.Peek()); }
public void MathOperationsContainer_should_be() { var mathOperationsContainer = new MathOperationsContainer(); }