public static int Calculation(string input) { Parse val = new Parse(); string[] inputParsed = val.Equation(input); char operation = val.OperatorType(input); int[] inputToInt = val.ValuesToInt(inputParsed); if (operation == '+') { return Add(inputToInt); } else if (operation == '-') { return Subtract(inputToInt); } else if (operation == '*') { return Multi(inputToInt); } else if (operation == '/') { return Divide(inputToInt); } else if (operation == '%') { return Modulo(inputToInt); } else { throw new InvalidOperationException("Error: Calculations must only use +, -, *, /, or %"); } }
public void ParseEnsureInputStringSplitAtOperator() { Parse value = new Parse(); string[] actualString = value.Equation("2+3"); string[] expectedString = new string[] { "2", "3" }; Assert.AreEqual(expectedString[0], actualString[0]); Assert.AreEqual(expectedString[1], actualString[1]); }
public void ParseEnsureInputReturnAsInt() { Parse value = new Parse(); string[] actualString = value.Equation("2 + 3"); int[] intArray = value.ValuesToInt(actualString); int expected2 = 2; int expected3 = 3; Assert.AreEqual(expected2, intArray[0]); Assert.AreEqual(expected3, intArray[1]); }
public void ParseEnsureIThrowExceptionIfOperationIsOutOfOrderOrDoesntMakeSense() { Parse value = new Parse(); value.Equation("+22"); }
public void ParseEnsureIThrowExceptionIfEquasionDoesntContainOperator() { Parse value = new Parse(); value.Equation("22"); }