static void Main(string[] args) { while (true) { Console.WriteLine("Type expression: "); string expression = Console.ReadLine(); if (String.IsNullOrWhiteSpace(expression)) { Console.WriteLine("Expresion cannot be empty."); Console.WriteLine("----------------------------"); continue; } expression = expression.Replace(" ", ""); if (StringExpressionChecker.IsValid(expression)) { //IStringExpressionEvaluator stringExpressionEvaluator = new SimpleStringExpressionEvaluator(); IStringExpressionEvaluator stringExpressionEvaluator = new ShuntingYardStringExpressionEvaluator(); decimal result = stringExpressionEvaluator.Evaluate(expression); Console.WriteLine($"Result: {result}"); } Console.WriteLine("----------------------------"); } }
public void ShuntingYardStringExpressionEvaluator_Test3_ShouldPass() { // Arrange const string expression = "4+5/2-1"; // Act decimal result = new ShuntingYardStringExpressionEvaluator().Evaluate(expression); // Assert Assert.AreEqual(5.5m, result); }
public void ShuntingYardStringExpressionEvaluator_Test9_ShouldPass() { // Arrange const string expression = "(10-5)*(2+3)"; // Act decimal result = new ShuntingYardStringExpressionEvaluator().Evaluate(expression); // Assert Assert.AreEqual(25m, result); }
public void ShuntingYardStringExpressionEvaluator_Test5_ShouldPass() { // Arrange const string expression = "0*2+5*1/5-5"; // Act decimal result = new ShuntingYardStringExpressionEvaluator().Evaluate(expression); // Assert Assert.AreEqual(-4m, result); }