コード例 #1
0
        public void GetLinesFromZeroOrMoreBlockTest()
        {
            int patternLength = 4;
            var pattern = new string('\0', patternLength);
            LineBuilder builder = new LineBuilder(pattern, null);
            string text = "a";
            var textBlock = new TextBlock(text);
            var zeroOrMoreBlock = new ZeroOrMoreBlock(textBlock);

            List<string> lines = builder.GetLinesFromZeroOrMoreBlock(0, zeroOrMoreBlock).ToList();

            Assert.AreEqual(patternLength + 1, lines.Count);
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < patternLength + 1; i++)
            {
                Assert.AreEqual(sb.ToString(), lines[i]);
                sb.Append(text);
            }

            TextBlock aBlock = new TextBlock("a");
            TextBlock bBlock = new TextBlock("b");
            OrGroupBlock orGroupBlock = new OrGroupBlock(new[] { aBlock, bBlock });
            zeroOrMoreBlock = new ZeroOrMoreBlock(orGroupBlock);
            lines = builder.GetLinesFromZeroOrMoreBlock(0, zeroOrMoreBlock).ToList();
            Assert.AreEqual(31, lines.Count);
        }