public void ConvertToPostFixedTest()
        {
            ShuntingYard target = new ShuntingYard();
            Tokens tokens = new Tokens("3*4 - 5*(4-3*3)");
            ReturnMessage actual = target.ConvertToPostFixed(tokens.AsList());

            ReturnMessage expected = new ReturnMessage(true,
                    new List<Token>() {
                    new Token("3", TokenType.numberLiteral),
                    new Token("4", TokenType.numberLiteral),
                    new Token("*", TokenType.operatorOrPunctuation),
                    new Token("-5", TokenType.numberLiteral),
                    new Token("4", TokenType.numberLiteral),
                    new Token("-3", TokenType.numberLiteral),
                    new Token("3", TokenType.numberLiteral),
                    new Token("*", TokenType.operatorOrPunctuation),
                    new Token("+", TokenType.operatorOrPunctuation),
                    new Token("*", TokenType.operatorOrPunctuation),
                    new Token("+", TokenType.operatorOrPunctuation),
                    });
            List<Token> returnedTokens = (List<Token>)actual.ReturnValue;
            List<Token> expectedTokens = (List<Token>)expected.ReturnValue;
            for(int i=0;i < returnedTokens.Count;i++){
                Assert.AreEqual<string>(returnedTokens[i].TokenString, expectedTokens[i].TokenString);
                Assert.AreEqual(returnedTokens[i].TokenType, expectedTokens[i].TokenType);
            }
        }
示例#2
0
        public void AddListOfTokensTest()
        {
            ShuntingYard sy = new ShuntingYard();
            Tokens tokens = new Tokens("Tan(3*4 - 5*(4-3*3))");
            List<Token> postFixed = (List<Token>)sy.ConvertToPostFixed(tokens.AsList()).ReturnValue;

            ParseTree actual = (ParseTree)new ParseTree().AddListOfTokens(
                                postFixed).ReturnValue;

            Debug.Print(actual.Visualize());
            //Assert.Inconclusive("Check the output window and see if the result is correct");
        }