示例#1
0
 private void DequeExceptions(IDeque <int> deque)
 {
     Assert.Throws(typeof(InvalidOperationException), () => deque.Pop());
     Assert.Throws(typeof(InvalidOperationException), () => deque.Shift());
     Assert.Throws(typeof(InvalidOperationException), () => deque.First);
     Assert.Throws(typeof(InvalidOperationException), () => deque.Last);
 }
示例#2
0
        private void DequeOperations(IDeque <string> deque)
        {
            var lastPrepend = string.Empty;
            var lastAppend  = string.Empty;
            var testNumber  = 10000;

            for (var i = 0; i < testNumber; i++)
            {
                lastPrepend = Guid.NewGuid().ToString();
                lastAppend  = Guid.NewGuid().ToString();
                deque.Prepend(lastPrepend);
                deque.Append(lastAppend);
            }
            Assert.Equal(testNumber * 2, deque.Count);
            Assert.Equal(lastPrepend, deque.First);
            Assert.Equal(lastAppend, deque.Last);
            Assert.Equal(lastPrepend, deque.Shift());
            Assert.Equal(testNumber * 2 - 1, deque.Count);
            Assert.Equal(lastAppend, deque.Pop());
            Assert.Equal(testNumber * 2 - 2, deque.Count);

            for (var i = 0; i < (testNumber * 2 - 2); i++)
            {
                Assert.False(string.IsNullOrEmpty(deque.Pop()));
            }
            Assert.Equal(0, deque.Count);
        }
示例#3
0
        private void DequePrependAndShift(IDeque <int> deque)
        {
            for (var i = 0; i < 100000; i++)
            {
                deque.Prepend(i);
            }

            for (var i = 0; i < 100000; i++)
            {
                Assert.Equal(100000 - i - 1, deque.First);
                Assert.Equal(0, deque.Last);
                Assert.Equal(100000 - i - 1, deque.Shift());
            }
            Assert.Equal(0, deque.Count);
        }
示例#4
0
        private void DequeAppendAndShift(IDeque <int> deque)
        {
            for (var i = 0; i < 100000; i++)
            {
                deque.Append(i);
            }

            for (var i = 0; i < 100000; i++)
            {
                Assert.Equal(i, deque.First);
                Assert.Equal(99999, deque.Last);
                Assert.Equal(i, deque.Shift());
            }
            Assert.Equal(0, deque.Count);
        }