static void Main(string[] args)
        {
            Console.WriteLine("Which stack option do you want: \"0\" = List, \"1\" = Array");
            int    choice = Convert.ToInt32(Console.ReadLine());
            IStack stack;

            if (choice == 0)
            {
                stack = new StackAsList();
            }
            else if (choice == 1)
            {
                stack = new StackAsArray();
            }
            else
            {
                throw new Exception("Please, enter right value!");
            }
            var calculator = new Calculator(stack);

            while (true)
            {
                Console.WriteLine("Enter postfix expression to calculate. ");
                string expression = Console.ReadLine();
                Console.WriteLine($"Result: {calculator.CalculateExpressionValue(expression)}");
            }
        }
 public void CalculateWithEmptyStringTest(Calculator calculator)
 {
     try
     {
         string inputStr = "";
         calculator.CalculateExpressionValue(inputStr);
     }
     catch (Exception exception)
     {
         Assert.AreEqual("incorrect expression", exception.Message);
     }
 }
 public void CalculateWithinvalidСharacterTest(Calculator calculator)
 {
     try
     {
         string inputStr = "23 yu *";
         calculator.CalculateExpressionValue(inputStr);
     }
     catch (Exception exception)
     {
         Assert.AreEqual("unknown character", exception.Message);
     }
 }
 public void CalculateWithExtraCharacter2Test(Calculator calculator)
 {
     try
     {
         string inputStr = "23 56 / 45";
         calculator.CalculateExpressionValue(inputStr);
     }
     catch (Exception exception)
     {
         Assert.AreEqual("extra value", exception.Message);
     }
 }
        public void CalculateWithCorrectExpression2Test(Calculator calculator)
        {
            string inputStr = "100 100 /";

            Assert.AreEqual((1, true), calculator.CalculateExpressionValue(inputStr));
        }