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