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)); }
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)); }
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)); }
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)); }