v1.5.0
+- Added SpanBetweenLast.
+
+v1.4.0
- Added SpanBetweenNth & SpanPairSurrounding (for single text).
v1.3.1
diff --git a/ReadOnlySpanExtensionsTests/ReadOnlySpanExtensionsTests.cs b/ReadOnlySpanExtensionsTests/ReadOnlySpanExtensionsTests.cs
index f2c394e..d308031 100644
--- a/ReadOnlySpanExtensionsTests/ReadOnlySpanExtensionsTests.cs
+++ b/ReadOnlySpanExtensionsTests/ReadOnlySpanExtensionsTests.cs
@@ -433,6 +433,58 @@ public void ShouldReturnSpanBetweenOuterIncludingWithStartingPos(string input, s
Assert.That(result.ToString(), Is.EqualTo(expected));
}
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", " | ", "Dummy3")]
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", " | ", "")]
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", "", "")]
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", "", "")]
+ [TestCase("[X]Dummy[X]", "[X]", "[X]", "Dummy")]
+ [TestCase("[X]Dummy[X]", "X", "X", "]Dummy[")]
+ [TestCase("[X][X]", "[X]", "[X]", "")]
+ [TestCase("[X][X]", "X", "[X]", "]")]
+ public void ShouldReturnSpanBetweenLast(string input, string startText, string endText, string expected)
+ {
+ var inputSpan = input.AsSpan();
+ var result = inputSpan.SpanBetweenLast(startText, endText);
+ Assert.That(result.ToString(), Is.EqualTo(expected));
+ }
+
+ [TestCase(" | Dummy | Dummy2 | Dummy3 | ", "", " | ", 0, "Dummy3")]
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", " | ", 29, "Dummy3")]
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", " | ", 30, "")]
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", " | ", 45, "")]
+ public void ShouldReturnSpanBetweenLastWithStartingPos(string input, string startText, string endText, int startingPos, string expected)
+ {
+ var inputSpan = input.AsSpan();
+ var result = inputSpan.SpanBetweenLast(startText, endText, startingPos);
+ Assert.That(result.ToString(), Is.EqualTo(expected));
+ }
+
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", " | ", "Dummy3 | ")]
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", " | ", "")]
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", "", "")]
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", "", "")]
+ [TestCase("[X]Dummy[X]", "[X]", "[X]", "[X]Dummy[X]")]
+ [TestCase("[X]Dummy[X]", "X", "X", "X]Dummy[X")]
+ [TestCase("[X][X]", "[X]", "[X]", "[X][X]")]
+ [TestCase("[X][X]", "X", "[X]", "X][X]")]
+ public void ShouldReturnSpanBetweenLastIncluding(string input, string startText, string endText, string expected)
+ {
+ var inputSpan = input.AsSpan();
+ var result = inputSpan.SpanBetweenLastIncluding(startText, endText);
+ Assert.That(result.ToString(), Is.EqualTo(expected));
+ }
+
+ [TestCase(" | Dummy | Dummy2 | Dummy3 | ", "", " | ", 0, "Dummy3 | ")]
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", " | ", 29, "Dummy3 | ")]
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", " | ", 30, "")]
+ [TestCase("Dummy | Dummy2 | Dummy3 | ", "", " | ", 45, "")]
+ public void ShouldReturnSpanBetweenLastIncludingWithStartingPos(string input, string startText, string endText, int startingPos, string expected)
+ {
+ var inputSpan = input.AsSpan();
+ var result = inputSpan.SpanBetweenLastIncluding(startText, endText, startingPos);
+ Assert.That(result.ToString(), Is.EqualTo(expected));
+ }
+
[TestCase("Dummy | Dummy2 | Dummy3 | ", "", " | ", 1, "Dummy")]
[TestCase("Dummy | Dummy2 | Dummy3 | ", "", " | ", 2, "Dummy2")]
[TestCase("Dummy | Dummy2 | Dummy3 | ", "", " | ", 3, "Dummy3")]