public void LineIterator_GetNextRange() { Init(4); lines.SetText("0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14"); CollectionAssert.AreEqual(new Line[] { lines[0], lines[1] }, GetLines(lines.GetLineRange(0, 2))); CollectionAssert.AreEqual(new Line[] { lines[1], lines[2] }, GetLines(lines.GetLineRange(1, 2))); CollectionAssert.AreEqual(new Line[] { lines[11], lines[12], lines[13] }, GetLines(lines.GetLineRange(11, 3))); CollectionAssert.AreEqual(new Line[] { lines[12], lines[13], lines[14] }, GetLines(lines.GetLineRange(12, 3))); LineIterator iterator = lines.GetLineRange(2, 10); iterator.MoveNext(); Assert.AreEqual(lines[2], iterator.current); iterator.MoveNext(); Assert.AreEqual(lines[3], iterator.current); CollectionAssert.AreEqual( new Line[] { lines[4], lines[5], lines[6], lines[7], lines[8] }, GetLines(iterator.GetNextRange(5))); }