Added a sliding window extension for IEnumerable

This commit is contained in:
2026-01-30 21:55:40 +01:00
parent 554ab0557e
commit 5e3bb81140
2 changed files with 55 additions and 2 deletions
@@ -102,4 +102,44 @@ public class EnumerableExtensionsTest
Assert.Equal([[1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2]], actual);
}
[Fact]
public void SlidingWindowOver_none_1_equals_none()
{
int[] data = [];
var actual = data.SlidingWindow(1).ToArray();
Assert.Equal([], actual);
}
[Fact]
public void SlidingWindowOver_1_1_equals_1()
{
int[] data = [1];
var actual = data.SlidingWindow(1).ToArray();
Assert.Equal([[1]], actual);
}
[Fact]
public void SlidingWindowOver_1234_2_equals_1_12_23_34()
{
int[] data = [1, 2, 3, 4];
var actual = data.SlidingWindow(2).ToArray();
Assert.Equal([[1], [1, 2], [2, 3], [3, 4]], actual);
}
[Fact]
public void SlidingWindowOver_1234_3_equals_1_12_123_234()
{
int[] data = [1, 2, 3, 4];
var actual = data.SlidingWindow(3).ToArray();
Assert.Equal([[1], [1, 2], [1, 2, 3], [2, 3, 4]], actual);
}
}