public void Test_Printing_Instructions_For_Long_Expressions() { var expression = new MathExpression("7/2+14*9-5-15*500"); var instructions = new StringBuilder(); instructions.AppendLine("PUSH 7"); instructions.AppendLine("PUSH 2"); instructions.AppendLine("DIVIDE"); instructions.AppendLine("PUSH 14"); instructions.AppendLine("ADD"); instructions.AppendLine("PUSH 9"); instructions.AppendLine("MULTIPLY"); instructions.AppendLine("PUSH 5"); instructions.AppendLine("SUBTRACT"); instructions.AppendLine("PUSH 15"); instructions.AppendLine("SUBTRACT"); instructions.AppendLine("PUSH 500"); instructions.AppendLine("MULTIPLY"); instructions.AppendLine("PRINT"); StringAssert.AreEqualIgnoringCase( expression.createProgramInstructions().ToString(), instructions.ToString() ); }
public void Test_Printing_Instructions_For_Single_Value() { var expression = new MathExpression("13"); var instructions = new StringBuilder(); instructions.AppendLine("PUSH 13"); instructions.AppendLine("PRINT"); StringAssert.AreEqualIgnoringCase( expression.createProgramInstructions().ToString(), instructions.ToString() ); }
static void Main(string[] args) { Console.WriteLine("Welcome"); while (true) { Console.WriteLine("Enter your math expressions:"); string expressionText = Console.ReadLine(); MathExpression expression; try { expression = new MathExpression(expressionText); Console.WriteLine(expression.createProgramInstructions()); } catch (Exception) { Console.WriteLine("Invalid Expression"); } } }