コード例 #1
0
        public void TestThatLexerGenerateRightTreeFromOneSymbolAndCheckSuccessedWithEmptyString()
        {
            // Arrange

            var symbol     = 'a';
            var stream     = new MemoryStream().FromString($"\'{symbol}\'{this.Symbol}");
            var testStream = new MemoryStream().FromString($"");
            var lexer      = this.Lexer;

            // Act

            var tree = new AstTree(lexer.Parse(stream));

            // Assert

            Assert.IsFalse(tree.Check(testStream));
        }
コード例 #2
0
        public void TestThatLexerGenerateRightTreeFromOneSymbolAndCheckFiledBecauseOfManySymbols()
        {
            // Arrange

            var symbol     = 'a';
            var stream     = new MemoryStream().FromString($"\'{symbol}\'");
            var testStream = new MemoryStream().FromString($"{symbol}{symbol}");
            var lexer      = this.Lexer;

            // Act

            var tree = new AstTree(lexer.Parse(stream));

            // Assert

            Assert.IsFalse(tree.Check(testStream));
        }
コード例 #3
0
        public void TestThatLexerGenerateSuccessTreeForManyRulesAndSchekeFailed()
        {
            // Arrange
            var str = new List <char> {
                's', 'a', 's', 'h', 'e', 'c', 'h', 'k', 'a'
            };
            var mapped     = string.Join(string.Empty, str.Select(x => $"\'{x}\'"));
            var stream     = new MemoryStream().FromString(mapped);
            var testStream = new MemoryStream().FromString("sshechka");
            var lexer      = this.Lexer;

            // Act

            var tree = new AstTree(lexer.Parse(stream));

            // Assert

            Assert.IsFalse(tree.Check(testStream));
        }
コード例 #4
0
        public void TestThatLexerGenerateRightTreeFromSeveralSymbolsAndCheckSuccessedWithManySymbol()
        {
            // Arrange

            var str = new List <char> {
                'a', 'b', 'c', 'd'
            };
            var mapped     = string.Join(string.Empty, str.Select(x => $"\'{x}\'{this.Symbol}"));
            var stream     = new MemoryStream().FromString(mapped);
            var testStream = new MemoryStream().FromString(string.Join(string.Empty, str.Select(x => $"{x}{x}{x}{x}{x}{x}{x}{x}{x}{x}")));
            var lexer      = this.Lexer;

            // Act

            var tree = new AstTree(lexer.Parse(stream));

            // Assert

            Assert.IsTrue(tree.Check(testStream));
        }