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)); }