Exemplo n.º 1
0
        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));
        }
Exemplo n.º 5
0
        public void Capacity_CanTrimASplitDequeue()
        {
            var queue = QueueGenerationHelpers.GenerateSplitQueue();

            queue.DequeueRange(4);
            queue.Trim();
            Assert.AreEqual(4, queue.Capacity);
            Assert.AreEqual(3, queue.Count);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 9
0
        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]);
        }
Exemplo n.º 10
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));
        }
Exemplo n.º 11
0
        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]);
        }
Exemplo n.º 12
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]);
        }