示例#1
0
        public void TestLinkedDequeReduceToZero()
        {
            var deque = new LinkedDeque <int>();

            for (var i = 0; i < 100; i++)
            {
                deque.Append(i);
            }
            for (var i = 100; i < 200; i++)
            {
                deque.Prepend(i);
            }
            Assert.False(deque.IsEmpty);
            Assert.Equal(200, deque.Count);

            for (var i = 0; i < 100; i++)
            {
                Assert.Equal(99 - i, deque.Pop());
            }

            for (var i = 0; i < 100; i++)
            {
                Assert.Equal(199 - i, deque.Shift());
            }
            Assert.True(deque.IsEmpty);
            Assert.Equal(0, deque.Count);
        }
示例#2
0
        public void TestLinkedDequeOneItem()
        {
            var deque = new LinkedDeque <int>();

            deque.Append(1);
            Assert.False(deque.IsEmpty);
            foreach (var item in deque)
            {
                Assert.Equal(1, item);
            }
            Assert.Equal(1, deque.First);
            Assert.Equal(1, deque.Last);
            Assert.Equal(1, deque.Pop());
            foreach (var item in deque)
            {
                Assert.True(false);
            }
            Assert.True(deque.IsEmpty);
            Assert.Equal(0, deque.Count);

            deque.Prepend(1);
            Assert.False(deque.IsEmpty);
            foreach (var item in deque)
            {
                Assert.Equal(1, item);
            }
            Assert.Equal(1, deque.First);
            Assert.Equal(1, deque.Last);
            Assert.Equal(1, deque.Shift());
            foreach (var item in deque)
            {
                Assert.True(false);
            }
            Assert.True(deque.IsEmpty);
            Assert.Equal(0, deque.Count);
        }