コード例 #1
0
        public void Init()
        {
            List    = new List <int>();
            Queue   = new Queue <int>();
            DeQueue = new DoubleEndedQueue <int>();

            Watch = new Stopwatch();
        }
コード例 #2
0
        public void DequeSizeIncreases()
        {
            var doubleEndedQueue = new DoubleEndedQueue <int>();

            for (int i = 0; i < Size; i++)
            {
                doubleEndedQueue.AddLast(i);
            }

            Assert.AreEqual(Size, doubleEndedQueue.Size);
        }
コード例 #3
0
        public void EmptyQueueDequeueUnderflow()
        {
            var doubleEndedQueue = new DoubleEndedQueue <int>();

            try
            {
                doubleEndedQueue.RemoveLast();
            }
            catch (InvalidOperationException ex)
            {
                Assert.AreEqual("The Deque is empty.", ex.Message);
            }
        }
コード例 #4
0
        public void MultipleAddLastRemoveLast()
        {
            var doubleEndedQueue = new DoubleEndedQueue <int>();

            for (int i = 0; i < Size; i++)
            {
                doubleEndedQueue.AddLast(i);
            }

            for (int i = Size - 1; i >= 0; i--)
            {
                var dequeuedValue = doubleEndedQueue.RemoveLast();
                Assert.AreEqual(i, dequeuedValue);
            }
        }
コード例 #5
0
        public void DequeueSearch()
        {
            var doubleEndedQueue = new DoubleEndedQueue <int>();

            for (int i = 0; i < Size; i++)
            {
                doubleEndedQueue.AddFirst(i);
            }

            for (int i = 0; i < Size; i++)
            {
                var result = doubleEndedQueue.Search(i);
                Assert.AreEqual(i, result.Value);
            }
        }
コード例 #6
0
        public void DequeSizeDecreases()
        {
            var doubleEndedQueue = new DoubleEndedQueue <int>();

            for (int i = 0; i < Size; i++)
            {
                doubleEndedQueue.AddLast(i);
            }

            for (int i = 0; i < Size; i++)
            {
                doubleEndedQueue.RemoveFirst();
            }

            Assert.AreEqual(0, doubleEndedQueue.Size);
        }
コード例 #7
0
        public static void Main()
        {
            var doubleEndedQueue = new DoubleEndedQueue <int>();

            for (int i = 0; i < 10; i++)
            {
                doubleEndedQueue.PushBack(i);
            }

            for (int i = 0; i < 10; i++)
            {
                doubleEndedQueue.PushFront(i);
            }

            for (int i = 0; i < 3; i++)
            {
                doubleEndedQueue.PopFront();
                doubleEndedQueue.PopBack();
            }

            System.Console.WriteLine(string.Join(", ", doubleEndedQueue));
        }
コード例 #8
0
        public void QueueUnderflow()
        {
            var doubleEndedQueue = new DoubleEndedQueue <int>();

            for (int i = 0; i < Size; i++)
            {
                doubleEndedQueue.AddFirst(i);
            }

            for (int i = 0; i < Size; i++)
            {
                doubleEndedQueue.RemoveFirst();
            }

            try
            {
                doubleEndedQueue.RemoveFirst();
            }
            catch (InvalidOperationException ex)
            {
                Assert.AreEqual("The Deque is empty.", ex.Message);
            }
        }
コード例 #9
0
        public void EmptyDequeSizeIsZero()
        {
            var doubleEndedQueue = new DoubleEndedQueue <int>();

            Assert.AreEqual(0, doubleEndedQueue.Size);
        }
コード例 #10
0
 protected Action ADeQueueContaining(params int[] numbers)
 {
     return(() => Queue = new DoubleEndedQueue <int>(numbers));
 }
コード例 #11
0
 protected Action AnAutoShrinkingDeQueueWithCapacity(int capacity)
 {
     return(() => Queue = new DoubleEndedQueue <int>(capacity, true));
 }
コード例 #12
0
 protected Action ADeQueueWithInitialCapacity(int capacity)
 {
     return(() => Queue = new DoubleEndedQueue <int>(capacity));
 }
コード例 #13
0
 protected void AnAutoShrinkingDeQueue()
 {
     Queue = new DoubleEndedQueue <int>(true);
 }
コード例 #14
0
 protected void ADeQueue()
 {
     Queue = new DoubleEndedQueue <int>();
 }
コード例 #15
0
 public virtual void Initialize()
 {
     Queue        = null;
     PopException = null;
 }