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); }
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); }
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; }); }
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(); } }); }