Example #1
0
        public void TestCopyRange()
        {
            var line = new LineSegment();

            line.InsertAfter(new Run("0123456789"));
            line.InsertAfter(new Run("0123456789"));
            line.InsertAfter(new Run("0123456789"));

            var copy = default(LineSegment);

            /// 最初
            copy = ((LineSegment)line.CopyRange(new Range(0, 5)));
            Assert.AreEqual("01234\r", copy.Text);

            /// rangeが一つのInline内
            copy = ((LineSegment)line.CopyRange(new Range(2, 3)));
            Assert.AreEqual("234\r", copy.Text);

            /// ひとつまたぐ
            copy = ((LineSegment)line.CopyRange(new Range(7, 5)));
            Assert.AreEqual("78901\r", copy.Text);

            /// 一つcontains
            copy = ((LineSegment)line.CopyRange(new Range(7, 15)));
            Assert.AreEqual("789012345678901\r", copy.Text);

            /// 最後のLineBreakは範囲に入っていてもいなくても結果が同じになる
            copy = ((LineSegment)line.CopyRange(new Range(25, 5)));
            Assert.AreEqual("56789\r", copy.Text);
            copy = ((LineSegment)line.CopyRange(new Range(25, 6)));
            Assert.AreEqual("56789\r", copy.Text);
        }