public void TailCanBeAdvancedWithoutQueueing()
        {
            var queue = new LeakyQueue <int>();

            for (int index = 0; index < 13; ++index)
            {
                queue.EnsureSlotAvailable();
                queue.AdvanceTail();

                Assert.AreEqual(index + 1, queue.Count);
            }
        }
        public void QueueCanEnsureCapacityForOneMoreSlot()
        {
            var queue = new LeakyQueue <int>();

            // Make sure the queue is filled to capacity. It is a valid implementation
            // to increase capacity in advance, so we just take the initial capacity
            // and make sure to fill up to that. The queue may have increased capacity already.
            int capacity = queue.Items.Length;

            while (queue.Count < capacity)
            {
                queue.Enqueue(123);
            }

            queue.EnsureSlotAvailable();

            Assert.Greater(queue.Items.Length, queue.Count);
        }