예제 #1
0
        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");
        }
예제 #2
0
        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(); }, "Пропускает цифры");
        }