public void InsertOrdinaryText()
        {
            var doc = new PlainTextDocument();

            doc.InsertAt(0, "Hello World");
            doc.TextAt(0, doc.TextLength).Should().Be("Hello World");
            doc.Root.Offset.Should().Be(0);
            doc.Root.EndOffset.Should().Be(11);
            doc.Root.Count.Should().Be(1);
        }
        public void InsertAtEnd()
        {
            var text = "Hello World";
            var doc  = new PlainTextDocument();

            doc.InsertAt(0, text);
            doc.InsertAt(doc.TextLength, " More");
            doc.TextAt(0, doc.TextLength).Should().Be("Hello World More");
            doc.Root.Count.Should().Be(1);
            doc.Root.Offset.Should().Be(0);
            doc.Root.EndOffset.Should().Be(16);
        }
        public void RemoveAllText()
        {
            var text = "Hello World";
            var doc  = new PlainTextDocument();

            doc.InsertAt(0, text);
            doc.DeleteAt(0, text.Length);
            doc.TextAt(0, doc.TextLength).Should().Be("");
            doc.Root.Offset.Should().Be(0);
            doc.Root.EndOffset.Should().Be(0);
            doc.Root.Count.Should().Be(1);
        }
        public void RemoveAcrossLineBreaks()
        {
            var text = "Hello World\n More";
            var doc  = new PlainTextDocument();

            doc.InsertAt(0, text);

            doc.DeleteAt(6, 7);
            doc.TextAt(0, doc.TextLength).Should().Be("Hello More");
            doc.Root.Offset.Should().Be(0);
            doc.Root.EndOffset.Should().Be(10);
            doc.Root.Count.Should().Be(1);
        }
        public void InsertWithLineBreaksAtEndOfLine()
        {
            var text = "Hello World\n";
            var doc  = new PlainTextDocument();

            doc.InsertAt(0, text);
            doc.TextAt(0, doc.TextLength).Should().Be(text);
            doc.Root.Offset.Should().Be(0);
            doc.Root.EndOffset.Should().Be(12);
            doc.Root.Count.Should().Be(2);
            doc.Root[1].Offset.Should().Be(12);
            doc.Root[1].EndOffset.Should().Be(12);
        }