Exemplo n.º 1
0
        private void TestWithSize(FixedSizeQueue <string> fixedSizeQueue, int size)
        {
            Assert.AreEqual(size, fixedSizeQueue.MaximumCapacity);
            Assert.AreEqual(0, fixedSizeQueue.Count);
            Assert.IsFalse(fixedSizeQueue.Contains(null));

            for (int i = 0; i < size; i++)
            {
                fixedSizeQueue.Push(i.ToString());
                Assert.AreEqual(i + 1, fixedSizeQueue.Count);
                Assert.IsFalse(fixedSizeQueue.Contains((i + 1).ToString()));

                for (int j = 0; j < i; j++)
                {
                    Assert.AreEqual((i - j).ToString(), fixedSizeQueue[j]);
                    Assert.IsTrue(fixedSizeQueue.Contains((i - j).ToString()));
                }
            }

            int index = size;

            for (int i = 0; i < size * 3 + 11; i++)
            {
                fixedSizeQueue.Push(index++.ToString());
                Assert.AreEqual(size, fixedSizeQueue.Count);

                for (int j = 0; j < size; j++)
                {
                    Assert.AreEqual((index - j - 1).ToString(), fixedSizeQueue[j]);
                }
            }

            foreach (string s in fixedSizeQueue)
            {
                Assert.AreEqual((--index).ToString(), s);
            }

            fixedSizeQueue.Clear();

            Assert.AreEqual(0, fixedSizeQueue.Count);
        }