Example #1
0
        public void ReverseAdd()
        {
            Deque <int> deque = new Deque <int>();

            deque.Add(1); deque.Add(2); deque.Add(3);
            IList <int> reverse = DequeTest.GetReverseView(deque);

            Assert.AreEqual(0, deque.IndexOf(1));
            Assert.AreEqual(2, reverse.IndexOf(1));
            Assert.AreEqual(1, deque[0]);
            Assert.AreEqual(2, deque[1]);
            Assert.AreEqual(3, deque[2]);
            Assert.AreEqual(3, reverse[0]);
            Assert.AreEqual(2, reverse[1]);
            Assert.AreEqual(1, reverse[2]);

            deque.Add(100);

            Assert.AreEqual(4, deque.Count);
            Assert.AreEqual(4, reverse.Count);
        }
Example #2
0
        public void ReadOnlyReversedTest()
        {
            const int repetition  = 40;
            var       array       = new Deque <int>();
            var       reverseView = DequeTest.GetReverseView(array);

            for (int i = 0; i < repetition; i++)
            {
                array.Add(i);
            }
            Assert.AreEqual(false, reverseView.IsReadOnly);
            foreach (int s in array)
            {
                Assert.AreEqual(true, reverseView.IsReadOnly);
            }
            Assert.AreEqual(false, reverseView.IsReadOnly);
            foreach (int s in reverseView)
            {
                Assert.AreEqual(true, array.IsReadOnly);
            }
            Assert.AreEqual(false, array.IsReadOnly);
        }
Example #3
0
        public void IndexerSetReversedLargeTest()
        {
            const int repetition  = 10000;
            var       array       = new Deque <int>();
            var       reverseView = DequeTest.GetReverseView(array);

            for (int i = 0; i < repetition; i++)
            {
                array.Add(1);
            }
            reverseView[0] = 3;
            reverseView[repetition - 1] = 2;
            Assert.AreEqual(2, reverseView[repetition - 1]);
            Assert.AreEqual(3, reverseView[0]);
            Assert.ThrowsException <ArgumentOutOfRangeException>(() =>
            {
                reverseView[-1] = 42;
            });
            Assert.ThrowsException <ArgumentOutOfRangeException>(() =>
            {
                reverseView[repetition] = 42;
            });
        }
Example #4
0
        public void EnumExceptionsTest()
        {
            var array = new Deque <int> {
                0, 1, 2, 3, 4, 5
            };

            Assert.ThrowsException <InvalidOperationException>(() =>
            {
                foreach (var item in array)
                {
                    array.Add(42);
                }
            });
            Assert.ThrowsException <InvalidOperationException>(() =>
            {
                foreach (var item in array)
                {
                    array.Clear();
                }
            });
            Assert.ThrowsException <InvalidOperationException>(() =>
            {
                foreach (var item in array)
                {
                    array.Insert(0, 42);
                }
            });
            Assert.ThrowsException <InvalidOperationException>(() =>
            {
                foreach (var item in array)
                {
                    array.Remove(42);
                }
            });
            Assert.ThrowsException <InvalidOperationException>(() =>
            {
                foreach (var item in array)
                {
                    array.RemoveAt(0);
                }
            });
            Assert.ThrowsException <InvalidOperationException>(() =>
            {
                foreach (var item in array)
                {
                    array.Reverse();
                }
            });
            var reverseView = DequeTest.GetReverseView(array);

            Assert.ThrowsException <InvalidOperationException>(() =>
            {
                foreach (var item in array)
                {
                    reverseView.Add(42);
                }
            });
            Assert.ThrowsException <InvalidOperationException>(() =>
            {
                foreach (var item in array)
                {
                    reverseView.Clear();
                }
            });
            Assert.ThrowsException <InvalidOperationException>(() =>
            {
                foreach (var item in array)
                {
                    reverseView.Insert(0, 42);
                }
            });
            Assert.ThrowsException <InvalidOperationException>(() =>
            {
                foreach (var item in array)
                {
                    reverseView.Remove(42);
                }
            });
            Assert.ThrowsException <InvalidOperationException>(() =>
            {
                foreach (var item in array)
                {
                    reverseView.RemoveAt(0);
                }
            });
            Assert.ThrowsException <InvalidOperationException>(() =>
            {
                foreach (var item in array)
                {
                    reverseView.Reverse();
                }
            });
        }