public void TestLinkedDequeReduceToZero() { var deque = new LinkedDeque <int>(); for (var i = 0; i < 100; i++) { deque.Append(i); } for (var i = 100; i < 200; i++) { deque.Prepend(i); } Assert.False(deque.IsEmpty); Assert.Equal(200, deque.Count); for (var i = 0; i < 100; i++) { Assert.Equal(99 - i, deque.Pop()); } for (var i = 0; i < 100; i++) { Assert.Equal(199 - i, deque.Shift()); } Assert.True(deque.IsEmpty); Assert.Equal(0, deque.Count); }
public void TestLinkedDequeOneItem() { var deque = new LinkedDeque <int>(); deque.Append(1); Assert.False(deque.IsEmpty); foreach (var item in deque) { Assert.Equal(1, item); } Assert.Equal(1, deque.First); Assert.Equal(1, deque.Last); Assert.Equal(1, deque.Pop()); foreach (var item in deque) { Assert.True(false); } Assert.True(deque.IsEmpty); Assert.Equal(0, deque.Count); deque.Prepend(1); Assert.False(deque.IsEmpty); foreach (var item in deque) { Assert.Equal(1, item); } Assert.Equal(1, deque.First); Assert.Equal(1, deque.Last); Assert.Equal(1, deque.Shift()); foreach (var item in deque) { Assert.True(false); } Assert.True(deque.IsEmpty); Assert.Equal(0, deque.Count); }