public void calculateTest()
 {
     RpnExpression re = new RpnExpression();
     Assert.AreEqual(300, re.calculate(100, 200, "+"));
     Assert.AreEqual(-100, re.calculate(100, 200, "-"));
     Assert.AreEqual(0.0693, re.calculate(0.33, 0.21, "*"));
     Assert.AreEqual(0.4, re.calculate(2, 5, "/"));
 }
Beispiel #2
0
        static void Main(string[] args)
        {
            String handle = "1";
            do
            {
                try
                {
                    Console.Write("Please select the decimal delimiter type, [1]comma, [2]point\r\n\r\n");

                    char dl = '1';
                    while (dl.Equals('1'))
                    {
                        String spliter = Console.ReadLine();
                        if (spliter.Equals("1"))
                        {
                            dl = ',';
                        }
                        else if (spliter.Equals("2"))
                        {
                            dl = '.';
                        }
                        else
                        {
                            Console.Write("Please input correct option, [1]comma, [2]point\r\n\r\n");
                        }
                    }

                    Console.Write("Please input the RPN array, use space to split the digital & operator arrays ...\r\n\r\n");
                    String rpnArray = Console.ReadLine();
                    Console.WriteLine("Your proposed Reverse Polish Notation is: '" + rpnArray + "'\r\n");
                    RpnExpression rpnEx = new RpnExpression(rpnArray, dl);
                    //Console.WriteLine(rpnEx.IsInputValid);
                    double result = rpnEx.calculate();
                    String re = result.ToString();
                    if (dl.Equals(','))
                    {
                        re = result.ToString().Replace(".", ",");
                    }
                    Console.WriteLine("The calculated value of the RPN expression is: '" + re + "'\r\n\r\n");
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }

                Console.WriteLine("Please select next step, [1]Continue, [Others]Close & Exit\r\n");
                handle = Console.ReadLine();
            }
            while (handle.Equals("1"));
        }
 public void calculateTest1()
 {
     // Integer
     RpnExpression re = new RpnExpression("100  200  300  -  +", '.');
     Assert.AreEqual(0, re.calculate());
     re = new RpnExpression("100  20  200  -  30  /  50  *  +", '.');
     Assert.AreEqual(-200, re.calculate());
     re = new RpnExpression("100  200  300  -  +", ',');
     Assert.AreEqual(0, re.calculate());
     re = new RpnExpression("100  20  200  -  30  /  50  *  +", ',');
     Assert.AreEqual(-200, re.calculate());
     // Double
     re = new RpnExpression("10,2  12,5  10  -  0,5  /  50  *  +", ',');
     Assert.AreEqual(260.2, re.calculate());
     re = new RpnExpression("10.2  12.5  10  -  0.5  /  50  *  +", '.');
     Assert.AreEqual(260.2, re.calculate());
 }