public void SlidingWindowRemovesPointsInNoLongerInWindow() { var points = CreateTestPoints(); var windowSize = 1; var windowPositioningType = WindowPositioningType.CenteredAtPosition; var sut = new SlidingWindow <Point2D>(points, p => p.X, windowSize, windowPositioningType); sut.SetPosition(2.2); Assert.That(sut.Count(), Is.EqualTo(2)); Assert.That(sut.Select(p => p.X), Is.EquivalentTo(new[] { 2, 2.5 })); sut.SetPosition(3.1); Assert.That(sut.Count(), Is.EqualTo(1)); Assert.That(sut.Select(p => p.X), Is.EquivalentTo(new[] { 3 })); }
public void ThrowsExceptionIfWindowNotSet() { var points = CreateTestPoints(); var windowSize = 1; var windowPositioningType = WindowPositioningType.CenteredAtPosition; var sut = new SlidingWindow <Point2D>(points, p => p.X, windowSize, windowPositioningType); // No call to .SetPosition! Assert.That(() => sut.Count(), Throws.InvalidOperationException); }