Ejemplo n.º 1
0
    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)));
    }
Ejemplo n.º 2
0
 private void CalculatorTest(ExpressionTreeCalculator pTree, string strLine, int iValue)
 {
     Assert.AreEqual(iValue, pTree.EvaluateExpression(strLine.Replace(" ", "").ToCharArray()));
 }