public void TestLetterListParse() { LetterListLexer l = new LetterListLexer("a,b,c"); Assert.IsTrue(l.Parse(), "Не пропускает a,b,c"); Assert.AreEqual(l.ParseResult.Count, 3, "неправильно собран список-результат"); Assert.Contains('a', l.ParseResult); Assert.Contains('b', l.ParseResult); Assert.Contains('c', l.ParseResult); l = new LetterListLexer("a"); Assert.IsTrue(l.Parse(), "Не пропускает a"); Assert.AreEqual(l.ParseResult.Count, 1, "неправильно собран список-результат"); Assert.Contains('a', l.ParseResult); l = new LetterListLexer("a,B"); Assert.IsTrue(l.Parse(), "Не пропускает a,B"); Assert.AreEqual(l.ParseResult.Count, 2, "неправильно собран список-результат"); Assert.Contains('a', l.ParseResult); Assert.Contains('B', l.ParseResult); l = new LetterListLexer("a;B"); Assert.IsTrue(l.Parse(), "Не пропускает a;B"); l = new LetterListLexer("a,B;c"); Assert.IsTrue(l.Parse(), "Не пропускает a,B;c"); l = new LetterListLexer("a;b,c;d"); Assert.IsTrue(l.Parse(), "Не пропускает a;b,c;d"); }
public void TestLetterListFail() { LetterListLexer l = new LetterListLexer("a,b,"); Assert.Throws <LexerException>(() => { l.Parse(); }, "Пропускает a,b,"); l = new LetterListLexer(",b"); Assert.Throws <LexerException>(() => { l.Parse(); }, "Пропускает ,b"); l = new LetterListLexer(";b"); Assert.Throws <LexerException>(() => { l.Parse(); }, "Пропускает ;b"); l = new LetterListLexer("B;"); Assert.Throws <LexerException>(() => { l.Parse(); }, "Пропускает B;"); l = new LetterListLexer("a,,b"); Assert.Throws <LexerException>(() => { l.Parse(); }, "Пропускает a,,b"); l = new LetterListLexer("a;;b"); Assert.Throws <LexerException>(() => { l.Parse(); }, "Пропускает a;;b"); l = new LetterListLexer("a;1"); Assert.Throws <LexerException>(() => { l.Parse(); }, "Пропускает цифры"); }