public void ParseEnsureICanSplitTheFormattedStringWithAMethod() { Parse test = new Parse(); string input = "-20 / -30"; test.splitString(input); Assert.AreEqual(-20, test.FirstNumber); Assert.AreEqual(-30, test.SecondNumber); Assert.AreEqual("/", test.Operator); }
public void EvaluateEnsureProperSubtractionOperation() { Parse test = new Parse(); Evaluate subtractTest = new Evaluate(); string input = "-2345 - -567"; test.splitString(input); decimal actual = subtractTest.calculate(test.FirstNumber, test.Operator, test.SecondNumber); int expected = -1778; Assert.AreEqual(expected, actual); }
public void EvaluateEnsureProperMultiplicationOperation() { Parse test = new Parse(); Evaluate multiplyTest = new Evaluate(); string input = "-10 * 2"; test.splitString(input); decimal actual = multiplyTest.calculate(test.FirstNumber, test.Operator, test.SecondNumber); int expected = -20; Assert.AreEqual(expected, actual); }
public void EvaluateEnsureProperModuloOperation() { Parse test = new Parse(); Evaluate moduloTest = new Evaluate(); string input = "24 % 5"; test.splitString(input); decimal actual = moduloTest.calculate(test.FirstNumber, test.Operator, test.SecondNumber); int expected = 4; Assert.AreEqual(expected, actual); }
public void EvaluateEnsureProperDivisionOperation() { Parse test = new Parse(); Evaluate divideTest = new Evaluate(); string input = "5 / 2"; test.splitString(input); decimal actual = divideTest.calculate(test.FirstNumber, test.Operator, test.SecondNumber); decimal expected = 2.50M; Assert.AreEqual(expected, actual); }
static void Main(string[] args) { Parse userInput = new Parse(); Evaluate expression = new Evaluate(); Stack stack = new Stack(); bool runProgram = true; int counter = 0; while (runProgram) { Console.Write("[" + counter + "]> "); string response = Console.ReadLine(); if (response == "exit" || response == "quit") { Console.WriteLine("Bye!! \nPress any key to close program..."); runProgram = false; Console.ReadKey(); } else if(response == "lastq") { Console.WriteLine(" " + stack.LastExpression); } else if (response == "last") { Console.WriteLine(" " + stack.LastAnswer); } else { string splitResponse = userInput.formatInput(response); if (splitResponse == "Invalid Expression. Please try again!") { Console.WriteLine(splitResponse); } else { userInput.splitString(splitResponse); decimal user_answer = expression.calculate(userInput.FirstNumber, userInput.Operator, userInput.SecondNumber); counter += 1; Console.WriteLine(" " + "=" + " " + user_answer); stack.LastExpression = response; stack.LastAnswer = user_answer; } } } }