public void Split() { var text = new SimpleText("", 0, 0); var split = text.Split(0); Assert.IsTrue(split.Head.ToString() == ""); Assert.IsTrue(split.Tail.ToString() == ""); AssertThrows(() => text.Split(1)); AssertThrows(() => text.Split(-1)); text = new SimpleText("a", 0, 1); split = text.Split(0); Assert.IsTrue(split.Head.ToString() == ""); Assert.IsTrue(split.Tail.ToString() == "a"); split = text.Split(1); Assert.IsTrue(split.Head.ToString() == "a"); Assert.IsTrue(split.Tail.ToString() == ""); AssertThrows(() => text.Split(2)); AssertThrows(() => text.Split(-1)); text = new SimpleText("__a__", 2, 1); Assert.IsTrue(text.ToString() == "a"); split = text.Split(0); Assert.IsTrue(split.Head.ToString() == ""); Assert.IsTrue(split.Tail.ToString() == "a"); split = text.Split(1); Assert.IsTrue(split.Head.ToString() == "a"); Assert.IsTrue(split.Tail.ToString() == ""); AssertThrows(() => text.Split(2)); AssertThrows(() => text.Split(-1)); text = new SimpleText("__abc__", 2, 3); Assert.IsTrue(text.ToString() == "abc"); split = text.Split(0); Assert.IsTrue(split.Head.ToString() == ""); Assert.IsTrue(split.Tail.ToString() == "abc"); split = text.Split(1); Assert.IsTrue(split.Head.ToString() == "a"); Assert.IsTrue(split.Tail.ToString() == "bc"); split = text.Split(2); Assert.IsTrue(split.Head.ToString() == "ab"); Assert.IsTrue(split.Tail.ToString() == "c"); split = text.Split(3); Assert.IsTrue(split.Head.ToString() == "abc"); Assert.IsTrue(split.Tail.ToString() == ""); }