public string Calculate(string input) { // creates a new RegexProcessor RegexUtil regexProcessing = new RegexUtil(); // creates a new setting ConstantParser ConstantParser constantSetting = new ConstantParser(); // extract integers ArrayList integers = regexProcessing.ExtractNums(input); // extracts operand string thisOp = regexProcessing.ExtractsOp(input); // holds answer value string answer; // make a new instance of the applicable class per the // operand extracted switch (thisOp) { case "+": AddIt thisAddExp = new AddIt(); answer = thisAddExp.Addition(integers).ToString(); LastQnA.LastAns = Convert.ToInt32(answer); LastQnA.LastQ = input; return answer; case "-": SubtractIt thisSubExp = new SubtractIt(); answer = thisSubExp.Subtraction(integers).ToString(); LastQnA.LastAns = Convert.ToInt32(answer); LastQnA.LastQ = input; return answer; case "*": MultiplyIt thisMultiExp = new MultiplyIt(); answer = thisMultiExp.Multiplication(integers).ToString(); LastQnA.LastAns = Convert.ToInt32(answer); LastQnA.LastQ = input; return answer; case "/": DivideIt thisDivExp = new DivideIt(); answer = thisDivExp.Division(integers).ToString(); LastQnA.LastAns = Convert.ToInt32(answer); LastQnA.LastQ = input; return answer; case "%": ModIt thisModExp = new ModIt(); answer = thisModExp.Modulation(integers).ToString(); LastQnA.LastAns = Convert.ToInt32(answer); LastQnA.LastQ = input; return answer; case "=": answer = "Your value has been set"; return answer; default: throw new ArgumentException("Input doesn't contain an operand understood {0}", thisOp); } }
public void ExtractsSubOperand() { string input = "10 - 2"; RegexUtil subtracting = new RegexUtil(); string answer = subtracting.ExtractsOp(input); string expected = "-"; Assert.AreEqual(expected, answer); }
public void ExtractsMultiOperand() { string input = "10 * 2"; RegexUtil multiplying = new RegexUtil(); string answer = multiplying.ExtractsOp(input); string expected = "*"; Assert.AreEqual(expected, answer); }
public void ExtractsModOperand() { string input = "10 % 2"; RegexUtil modulusing = new RegexUtil(); string answer = modulusing.ExtractsOp(input); string expected = "%"; Assert.AreEqual(expected, answer); }
public void ExtractsDivOperandTest() { string input = "10 / 2"; RegexUtil dividing = new RegexUtil(); string answer = dividing.ExtractsOp(input); string expected = "/"; Assert.AreEqual(expected, answer); }
public void ExtractsAddOperand() { string input = "3 + 4"; RegexUtil adding = new RegexUtil(); string answer = adding.ExtractsOp(input); string expected = "+"; Assert.AreEqual(expected, answer); }