public void QueueX_Positive() { var queue = new QueueX <int>(); Assert.IsTrue(queue.IsEmtpy()); queue.Enqueue(1); queue.Enqueue(2); queue.Enqueue(5); queue.Enqueue(7); queue.Enqueue(9); queue.Enqueue(16); Assert.AreEqual(6, queue.Size()); Assert.AreEqual(1, queue.Dequeue()); Assert.AreEqual(2, queue.Dequeue()); Assert.AreEqual(5, queue.Dequeue()); Assert.AreEqual(7, queue.Dequeue()); Assert.AreEqual(2, queue.Size()); queue.Enqueue(22); queue.Enqueue(33); queue.Enqueue(44); var list = new List <int> { 9, 16, 22, 33, 44 }; var index = 0; foreach (var i in queue) { Assert.AreEqual(i, list[index++]); } Assert.AreEqual(9, queue.Peek()); }
static bool ReleaseAll(QueueX <object> queue) { if (queue.IsEmpty) { return(false); } while (queue.TryDequeue(out var msg)) { _ = ReferenceCountUtil.Release(msg); } return(true); }
private static void QueueImplementation() { QueueX <long> queue = new QueueX <long>(5); for (int i = 0; i < 5; i++) { Console.WriteLine($"Inserting values into Queue {i}!"); queue.Insert(i); } Console.WriteLine("Removing values From Queue!"); while (!queue.IsEmpty()) { var value = queue.Remove(); Console.WriteLine($"Removed value {value}!"); } }
public MaxCapacityQueue(int maxCapacity) { _queue = new QueueX <T>(8); _maxCapacity = maxCapacity; }
static object Poll(QueueX <object> queue) { _ = queue.TryDequeue(out var result); return(result); }
public void DequeVsList() { var deque = new Deque <int>(new[] { 1, 2, 3, 4 }); deque.AddToBack(5); Assert.Equal(new[] { 1, 2, 3, 4, 5 }, deque); var queue = new QueueX <int>(new[] { 1, 2, 3, 4 }); queue.Enqueue(5); Assert.Equal(new[] { 1, 2, 3, 4, 5 }, queue); var stack = new Stack <int>(new[] { 1, 2, 3, 4 }); stack.Push(5); Assert.Equal(new[] { 5, 4, 3, 2, 1 }, stack); var lstComparer = new List <int>(); deque.ForEach((item, lst) => lst.Add(item), lstComparer); Assert.Equal(new[] { 1, 2, 3, 4, 5 }, lstComparer); lstComparer.Clear(); deque.Reverse((item, lst) => lst.Add(item), lstComparer); Assert.Equal(new[] { 5, 4, 3, 2, 1 }, lstComparer); lstComparer.Clear(); queue.ForEach((item, lst) => lst.Add(item), lstComparer); Assert.Equal(new[] { 1, 2, 3, 4, 5 }, lstComparer); lstComparer.Clear(); queue.Reverse((item, lst) => lst.Add(item), lstComparer); Assert.Equal(new[] { 5, 4, 3, 2, 1 }, lstComparer); //lstComparer.Clear(); //stack.ForEach((item, lst) => lst.Add(item), lstComparer); //Assert.Equal(new[] { 5, 4, 3, 2, 1 }, lstComparer); //lstComparer.Clear(); //stack.Reverse((item, lst) => lst.Add(item), lstComparer); //Assert.Equal(new[] { 1, 2, 3, 4, 5 }, lstComparer); var list = new List <int>(new[] { 1, 2 }); Assert.Equal(new[] { 1, 2 }, list); Assert.Equal(new[] { 1, 2 }, list.ToArray()); deque = new Deque <int>(); deque.AddToBack(1); deque.AddToBack(2); Assert.Equal(new[] { 1, 2 }, deque); Assert.Equal(new[] { 1, 2 }, deque.ToArray()); Assert.Equal(list, deque); deque = new Deque <int>(true); deque.AddToBack(1); deque.AddToBack(2); Assert.Equal(new[] { 2, 1 }, deque); Assert.Equal(new[] { 1, 2 }, deque.ToArray()); deque = new Deque <int>(); deque.AddToFront(1); deque.AddToFront(2); Assert.Equal(new[] { 2, 1 }, deque); Assert.Equal(new[] { 2, 1 }, deque.ToArray()); deque = new Deque <int>(true); deque.AddToFront(1); deque.AddToFront(2); Assert.Equal(new[] { 1, 2 }, deque); Assert.Equal(new[] { 2, 1 }, deque.ToArray()); Assert.Equal(list, deque); }