public void Tokenize_TwoOperationsInsideWithSamePriorityBrackets_SholdReturnSuccess()
        {
            //arrange

            var calculator = new RPNCalculator();

            string[] expectedTokens = new[] { "4", "5", "2", "+", "1", "-", "*" };
            string   input          = "4*(5+2-1)";

            //act
            var actualTokens = calculator.Tokenize(input);

            //assert
            Assert.Equal(expectedTokens, actualTokens);
        }
        public void Tokenize_TwoOperationsWithLargerPriorityInSecondOperation_SholdReturnSuccess()
        {
            //arrange

            var calculator = new RPNCalculator();

            string[] expectedTokens = new[] { "4", "5", "2", "*", "+" };
            string   input          = "4+5*2";

            //act
            var actualTokens = calculator.Tokenize(input);

            //assert
            Assert.Equal(expectedTokens, actualTokens);
        }
        public void Tokenize_PowerOfTwoBracketGroups_SholdReturnSuccess()
        {
            //arrange

            var calculator = new RPNCalculator();

            string[] expectedTokens = new[] { "4", "2", "*", "2", "-", "7", "2", "2", "*", "-", "^" };
            string   input          = "(4*2-2)^(7-2*2)";

            //act
            var actualTokens = calculator.Tokenize(input);

            //assert
            Assert.Equal(expectedTokens, actualTokens);
        }
        public void Tokenize_TwoOperationsWithSamePriority_SholdReturnThreeTokens()
        {
            //arrange

            var calculator = new RPNCalculator();

            string[] expectedTokens = new[] { "4", "5", "+", "1", "-" };
            string   input          = "4+5-1";

            //act
            var actualTokens = calculator.Tokenize(input);

            //assert
            Assert.Equal(expectedTokens, actualTokens);
        }
        public void Tokenize_SingleOperation_SholdReturnThreeTokens()
        {
            //arrange

            var calculator = new RPNCalculator();

            string[] expectedTokens = new[] { "4", "5", "+" };
            string   input          = "4+5";

            //act
            var actualTokens = calculator.Tokenize(input);

            //assert
            Assert.Equal(expectedTokens, actualTokens);
        }