public void TestMethod3() {//测试输入答案的格式不正确的识别情况 Build build = new Build(); build.Expr[0] = 1; build.Expr[1] = 101; build.Expr[2] = 7; build.Expr[3] = 102; build.Expr[4] = 6; build.Expr[5] = 103; build.Expr[6] = 3; build.Expr[7] = 104; build.Expr[8] = 2; build.flag = 9; build.p = 9; //表达式是1+7-6*3/2 build.TurnToHou(); BinaryTree tree; tree = build.createtree(); //将后缀表达式转换为二叉树 tree.preordercalc(tree.getroot()); //计算最终的结果并存在根节点 Ans ans = new Ans(); tree.getroot().value.Reduction(); MyNumber correctAnswer = tree.getroot().value;//这里保存了计算出来的答案 int ansflag = ans.GetResult(correctAnswer, "-1’"); Assert.AreEqual(2, ansflag); }
public void TestMethod2() {//测试括号和乘方的计算正确性 Build build = new Build(); build.Expr[0] = 1; build.Expr[1] = 101; build.Expr[2] = 106; build.Expr[3] = 7; build.Expr[4] = 102; build.Expr[5] = 6; build.Expr[6] = 107; build.Expr[7] = 105; build.Expr[8] = 3; build.Expr[9] = 104; build.Expr[10] = 2; build.flag = 11; build.p = 11; //表达式是1+(7-6)^3/2 build.TurnToHou(); BinaryTree tree; tree = build.createtree(); //将后缀表达式转换为二叉树 tree.preordercalc(tree.getroot()); //计算最终的结果并存在根节点 Ans ans = new Ans(); tree.getroot().value.Reduction(); MyNumber correctAnswer = tree.getroot().value;//这里保存了计算出来的答案 int ansflag = ans.GetResult(correctAnswer, "3/2"); Assert.AreEqual(1, ansflag); }