void CheckLines()
{
string text = document.Text;
int lineNumber = 1;
int lineStart = 0;
for (int i = 0; i < text.Length; i++)
{
char c = text[i];
if (c == '\r' && i + 1 < text.Length && text[i + 1] == '\n')
{
DocumentLine line = document.GetLineByNumber(lineNumber);
Assert.AreEqual(lineNumber, line.LineNumber);
Assert.AreEqual(2, line.DelimiterLength);
Assert.AreEqual(lineStart, line.Offset);
Assert.AreEqual(i - lineStart, line.Length);
i++; // consume \n
lineNumber++;
lineStart = i + 1;
}
else if (c == '\r' || c == '\n')
{
DocumentLine line = document.GetLineByNumber(lineNumber);
Assert.AreEqual(lineNumber, line.LineNumber);
Assert.AreEqual(1, line.DelimiterLength);
Assert.AreEqual(lineStart, line.Offset);
Assert.AreEqual(i - lineStart, line.Length);
lineNumber++;
lineStart = i + 1;
}
}
Assert.AreEqual(lineNumber, document.LineCount);
}