public void QueueExtensions_DequeuePattern_ShouldDequeueTwoElementPatternWithCounts() { // Arrange var input = new Queue<string>(new[] { "a", "a", "a", "b", "b", "c" }); // Act var result = input.DequeuePattern(new[] { new PatternSegment<string>(s => s == "a", 3), new PatternSegment<string>(s => s == "b", 2) }); // Assert CollectionAssert.AreEqual( new[] { "a", "a", "a", "b", "b" }, result.ToArray()); Assert.AreEqual(1, input.Count()); }
public void QueueExtensions_DequeuePattern_ShouldReturnEmptyEnumerableWhenPatternFails() { // Arrange var input = new Queue<string>(new[] { "a", "a", "b", "b", "c" }); // Act var result = input.DequeuePattern(new[] { new PatternSegment<string>(s => s == "a", 2), new PatternSegment<string>(s => s == "c") }); // Assert Assert.AreEqual(0, result.Count()); Assert.AreEqual(5, input.Count()); }