public void TestGetLineStartIndexOf() { string text = "foo\n" + "bar\r\n" + "baz"; Assert.AreEqual(0, StringLineUtil.GetLineStartCharacterIndexOf(text, 0)); Assert.AreEqual(4, StringLineUtil.GetLineStartCharacterIndexOf(text, 1)); Assert.AreEqual(9, StringLineUtil.GetLineStartCharacterIndexOf(text, 2)); // いきなり改行 text = "\r\n" + "a"; Assert.AreEqual(0, StringLineUtil.GetLineStartCharacterIndexOf(text, 0)); Assert.AreEqual(2, StringLineUtil.GetLineStartCharacterIndexOf(text, 1)); // 改行続き text = "\r\n" + "\r\n" + "a"; Assert.AreEqual(0, StringLineUtil.GetLineStartCharacterIndexOf(text, 0)); Assert.AreEqual(2, StringLineUtil.GetLineStartCharacterIndexOf(text, 1)); Assert.AreEqual(4, StringLineUtil.GetLineStartCharacterIndexOf(text, 2)); }
public void TestGetLineCount() { string text = "foo\n" + "bar\r\n" + "baz"; Assert.AreEqual(3, StringLineUtil.GetLineCount(text)); text = "foo\n" + "bar\r\n" + "baz\n"; Assert.AreEqual(4, StringLineUtil.GetLineCount(text)); //// いきなり改行 text = "\r\n" + "a"; Assert.AreEqual(2, StringLineUtil.GetLineCount(text)); //// 改行続き text = "\r\n" + "\r\n" + "a"; Assert.AreEqual(3, StringLineUtil.GetLineCount(text)); }
public void TestGetColumnIndexOf() { string text = "foo\n" + "bar\r\n" + "baz"; int[] expected = new int[] { 0, 1, 2, 3, 0, 1, 2, 3, 4, 0, 1, 2 }; for (int i = 0; i < text.Length; ++i) { Assert.AreEqual(expected[i], StringLineUtil.GetColumnIndexOf(text, i)); } // いきなり改行 text = "\r\n" + "a"; Assert.AreEqual(0, StringLineUtil.GetColumnIndexOf(text, 0)); Assert.AreEqual(1, StringLineUtil.GetColumnIndexOf(text, 1)); Assert.AreEqual(0, StringLineUtil.GetColumnIndexOf(text, 2)); // 改行続き text = "\r\n" + "\r\n" + "a"; Assert.AreEqual(0, StringLineUtil.GetColumnIndexOf(text, 0)); Assert.AreEqual(1, StringLineUtil.GetColumnIndexOf(text, 1)); Assert.AreEqual(0, StringLineUtil.GetColumnIndexOf(text, 2)); Assert.AreEqual(1, StringLineUtil.GetColumnIndexOf(text, 3)); Assert.AreEqual(0, StringLineUtil.GetColumnIndexOf(text, 4)); }
public void TestGetLineEndIndexOf() { string text = "foo\n" + "bar\r\n" + "baz"; Assert.AreEqual(3, StringLineUtil.GetLineEndCharacterIndexOf(text, 0)); Assert.AreEqual(8, StringLineUtil.GetLineEndCharacterIndexOf(text, 1)); Assert.AreEqual(12, StringLineUtil.GetLineEndCharacterIndexOf(text, 2)); //// いきなり改行 text = "\r\n" + "a"; Assert.AreEqual(1, StringLineUtil.GetLineEndCharacterIndexOf(text, 0)); Assert.AreEqual(3, StringLineUtil.GetLineEndCharacterIndexOf(text, 1)); //// 改行続き text = "\r\n" + "\r\n" + "a"; Assert.AreEqual(1, StringLineUtil.GetLineEndCharacterIndexOf(text, 0)); Assert.AreEqual(3, StringLineUtil.GetLineEndCharacterIndexOf(text, 1)); Assert.AreEqual(5, StringLineUtil.GetLineEndCharacterIndexOf(text, 2)); }
public void TestGetColumnCount() { string text = "foo\n" + "bar\r\n" + "baz"; Assert.AreEqual(4, StringLineUtil.GetColumnCount(text, 0)); Assert.AreEqual(5, StringLineUtil.GetColumnCount(text, 1)); Assert.AreEqual(4, StringLineUtil.GetColumnCount(text, 2)); }
public static int GetLineEndFirstCharacterIndexOf(string text, int lineIndex) { int lineEndIndex = GetLineEndCharacterIndexOf(text, lineIndex); if ((StringLineUtil.GetLineEndKind(text, lineEndIndex) & StringLineUtil.LineEndKinds.SecondOfDoubleByte) == StringLineUtil.LineEndKinds.SecondOfDoubleByte ) { --lineEndIndex; } return(lineEndIndex); }
public void TestSplitLines() { string text = "foo\n" + "bar\r\n" + "baz"; string[] ret = StringLineUtil.SplitLines(text); Assert.AreEqual(3, ret.Length); Assert.AreEqual("foo\n", ret[0]); Assert.AreEqual("bar\r\n", ret[1]); Assert.AreEqual("baz\0", ret[2]); }
public void TestGetIndexOf() { string text = "foo\n" + "bar\r\n" + "baz"; Assert.AreEqual(0, StringLineUtil.GetCharacterIndexOf(text, 0, 0)); Assert.AreEqual(3, StringLineUtil.GetCharacterIndexOf(text, 0, 3)); Assert.AreEqual(4, StringLineUtil.GetCharacterIndexOf(text, 1, 0)); Assert.AreEqual(8, StringLineUtil.GetCharacterIndexOf(text, 1, 4)); Assert.AreEqual(9, StringLineUtil.GetCharacterIndexOf(text, 2, 0)); }