public void Test_Reset() { Calculator calcul = new Calculator(); calcul.Reset(); Assert.Equal(0, calcul.result); }
public void Test_Operate() { string expressionString = "(2*4+5)"; string sign = "*"; string Rstring = @"\-?\d+\+\-?\d+"; Calculator tempcalcul = new Calculator(); switch (sign) { case "-": Rstring = @"\-?\d+\-\-?\d+"; break; case "*": Rstring = @"\-?\d+\*\-?\d+"; break; case "/": Rstring = @"\-?\d+\/\-?\d+"; break; } foreach (Match multiply in Regex.Matches(expressionString, Rstring, RegexOptions.IgnoreCase)) { string multiplyString = multiply.ToString(); int index = multiplyString.IndexOf(sign, 1); string str2 = multiplyString.Substring(index); string str1 = multiplyString.Replace(str2, ""); tempcalcul.Reset(); if (sign == "-") { str2 = str2.IndexOf("-", 1) > 0 ? "-" + str2.Replace("-", "") : str2.Replace("-", ""); tempcalcul.setMemory(false); } else { str2 = str2.Replace(sign, ""); } decimal str1Decimal = Convert.ToDecimal(str1); doCalcul(str1Decimal, ref tempcalcul, sign); if (sign == "-") { tempcalcul.setMemory(true); } decimal str1Decima2 = Convert.ToDecimal(str2); doCalcul(str1Decima2, ref tempcalcul, sign); expressionString = expressionString.Replace(multiply.ToString(), tempcalcul.result.ToString()); } Assert.Equal("(8+5)", expressionString); }