public void Between_Ranges() { var data = new[] { 0, 1, 2, 3, 1, 2, 5, 6, 2, 1, 2, 8, 9 }; var needle = new[] {1, 2}; var matches = data.Searches(needle).Select(i => Tuple.Create(i, i + needle.Length - 1)).ToList(); matches.Select(t => t.Item1).Should().BeEquivalentTo(1, 4, 9); var split = matches.Between(data).ToList(); split.Count().Should().Be(4); split[0].Should().BeEquivalentTo(0); split[1].Should().BeEquivalentTo(3); split[2].Should().BeEquivalentTo(5, 6, 2); split[3].Should().BeEquivalentTo(8, 9); }
public void Between() { var data = new[] {0, 1, 2, 3, 1, 2, 5, 6, 2, 1, 2, 8, 9}; var needle = new[] { 1, 2 }; var matches = data.Searches(needle).ToList(); matches.Should().BeEquivalentTo(1, 4, 9); var split = matches.Between(data).ToList(); split.Count().Should().Be(4); split[0].Should().BeEquivalentTo(0); split[1].Should().BeEquivalentTo(2, 3); split[2].Should().BeEquivalentTo(2, 5, 6, 2); split[3].Should().BeEquivalentTo(2, 8, 9); }