public void Add_CanAddItemToASplitQueue() { var deque = QueueGenerationHelpers.GenerateSplitQueue(); deque.Add(100); Assert.AreEqual(100, deque.Peek(deque.Count - 1)); }
public void BracketOperator_CanLookupInASplitDeque() { var queue = QueueGenerationHelpers.GenerateSplitQueue(); Assert.AreEqual(4, queue[0]); Assert.AreEqual(11, queue[6]); }
public void Contains_CanCheckIfSplitQueueContainsValue() { var queue = QueueGenerationHelpers.GenerateSplitQueue(); Assert.IsTrue(queue.Contains(4)); Assert.IsTrue(queue.Contains(11)); Assert.IsFalse(queue.Contains(200)); }
public void Peek_BehavesLikeBracketOperatorOnASplitQueue() { var queue = QueueGenerationHelpers.GenerateSplitQueue(); Assert.AreEqual(queue[0], queue.Peek(0)); Assert.AreEqual(queue[6], queue.Peek(6)); Assert.ThrowsException <ArgumentOutOfRangeException>(() => queue.Peek(12)); }
public void Capacity_CanTrimASplitDequeue() { var queue = QueueGenerationHelpers.GenerateSplitQueue(); queue.DequeueRange(4); queue.Trim(); Assert.AreEqual(4, queue.Capacity); Assert.AreEqual(3, queue.Count); }
public void Add_CanAddRangeToFrontOfSplitQueue() { var deque = QueueGenerationHelpers.GenerateSplitQueue(); deque.AddFront(100); Assert.AreEqual(100, deque[0]); Assert.AreEqual(8, deque.Count); }
public void DequeueRange_CanDequeueFromSplitQueue() { var queue = QueueGenerationHelpers.GenerateSplitQueue(); var result = queue.Dequeue(); Assert.AreEqual(6, queue.Count); Assert.AreEqual(8, queue.Capacity); Assert.AreEqual(4, result); }
public void TryTake_CanTryTakeFromASplitQueue() { var queue = QueueGenerationHelpers.GenerateSplitQueue(); queue.TryTake(out var item); Assert.AreEqual(6, queue.Count); Assert.AreEqual(8, queue.Capacity); Assert.AreEqual(4, item); }
public void Copy_CanConvertToArrayWhenSplit() { var queue = QueueGenerationHelpers.GenerateSplitQueue(); var array = queue.ToArray(); foreach (var item in queue) { Assert.IsTrue(array.Contains(item)); } Assert.AreEqual(array[0], queue[0]); }
public void Add_CanAddACollectionOfItemsToASplitQueue() { var deque = QueueGenerationHelpers.GenerateSplitQueue(); var col = new[] { 20, 21, 22, 23 }; deque.AddRange(col); Assert.AreEqual(23, deque.Peek(deque.Count - 1)); Assert.AreEqual(22, deque.Peek(deque.Count - 2)); Assert.AreEqual(21, deque.Peek(deque.Count - 3)); Assert.AreEqual(20, deque.Peek(deque.Count - 4)); Assert.AreEqual(11, deque.Peek(deque.Count - 5)); }
public void Copy_CanCopyToAnArrayWhenSplit() { var queue = QueueGenerationHelpers.GenerateSplitQueue(); var array = new int[queue.Count]; queue.CopyTo(array, 0); foreach (var item in queue) { Assert.IsTrue(array.Contains(item)); } Assert.AreEqual(array[0], queue[0]); }
public void Copy_CanCopyIntoArrayWrapperWhenSplit() { var queue = QueueGenerationHelpers.GenerateSplitQueue(); var array = new int[queue.Count]; var wrapper = (Array)array; queue.CopyTo(wrapper, 0); array = wrapper.Cast <int>().ToArray(); foreach (var item in queue) { Assert.IsTrue(array.Contains(item)); } Assert.AreEqual(array[0], queue[0]); }
public void DequeueRange_CanDequeueRangeFromSplitQueue() { var queue = QueueGenerationHelpers.GenerateSplitQueue(); var values = queue.DequeueRange(6); var list = values.ToList(); Assert.AreEqual(1, queue.Count); Assert.AreEqual(8, queue.Capacity); Assert.AreEqual(4, list[0]); Assert.AreEqual(5, list[1]); Assert.AreEqual(6, list[2]); Assert.AreEqual(7, list[3]); Assert.AreEqual(8, list[4]); Assert.AreEqual(10, list[5]); Assert.AreEqual(11, queue[0]); }
public void DequeueRange_TakeCountIsSameAsDequeueRangeOnASplitQueue() { var q1 = QueueGenerationHelpers.GenerateSplitQueue(); var q2 = QueueGenerationHelpers.GenerateSplitQueue(); Assert.AreEqual(q1.Count, q2.Count); Assert.AreEqual(q1.Capacity, q2.Capacity); var r1 = q1.DequeueRange(6).ToList(); var r2 = q2.Take(6).ToList(); for (var idx = 0; idx < r1.Count; idx++) { Assert.AreEqual(r1[idx], r2[idx]); } Assert.AreEqual(1, q1.Count); Assert.AreEqual(8, q1.Capacity); Assert.AreEqual(7, q2.Count); Assert.AreEqual(8, q1.Capacity); }
public void BracketOperator_CannotLookupPastCapacityOnASplitQueue() { var queue = QueueGenerationHelpers.GenerateSplitQueue(); Assert.ThrowsException <ArgumentOutOfRangeException>(() => queue[32]); }