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("----------------------------");
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }