public void Test_Calculator() { ExpressionTreeCalculator pTree = new ExpressionTreeCalculator(); // 1자리 숫자만, 소수점 처리가 안되는 계산기입니다. CalculatorTest(pTree, "1", 1); CalculatorTest(pTree, "(((1 * (2 + 3)) + (1 * 3)) + 5 * 5) + (5)", ((((1 * (2 + 3)) + (1 * 3)) + 5 * 5) + (5))); CalculatorTest(pTree, "1 * 2 * 3 * 4 * 5 + 5", 1 * 2 * 3 * 4 * 5 + 5); CalculatorTest(pTree, "((1 * 2) * (3 * 4)) * (5 + 5)", ((1 * 2) * (3 * 4)) * (5 + 5)); CalculatorTest(pTree, "((2 * 3) / 2 + 2) * 8 + (2 * (1 + 1 / 2 * 1 - 1))", ((2 * 3) / 2 + 2) * 8 + (2 * (1 + 1 / 2 * 1 - 1))); }
private void CalculatorTest(ExpressionTreeCalculator pTree, string strLine, int iValue) { Assert.AreEqual(iValue, pTree.EvaluateExpression(strLine.Replace(" ", "").ToCharArray())); }