Пример #1
0
 private void AssertInvalidOperationsOnTraverserAtStartOrEnd(IListTraverser <int> traverser)
 {
     Assert.Throws <InvalidOperationException>(() => { var x = traverser.Index; });
     Assert.Throws <InvalidOperationException>(() => { var x = traverser.Element; });
     Assert.Throws <InvalidOperationException>(() => traverser.Element = 1);
     Assert.Throws <InvalidOperationException>(() => traverser.RemoveAt());
 }
Пример #2
0
 private void AssertStateOfTraverserOnSingleElementList(IListTraverser <int> traverser)
 {
     // not asserting the value of the element, since that is test-case dependent
     Assert.IsFalse(traverser.AtStart);
     Assert.IsFalse(traverser.AtEnd);
     Assert.IsTrue(traverser.OnElement);
     Assert.IsTrue(traverser.OnIndex);
     Assert.AreEqual(0, traverser.Index);
 }
Пример #3
0
 private void TestTraverserBackwardTraversal(IListTraverser <int> traverser)
 {
     for (int i = 4; i >= 0; --i)
     {
         Assert.AreEqual(i, traverser.Index);
         Assert.AreEqual(i + 1, traverser.Element);
         traverser.ToPrevious();
     }
     Assert.IsTrue(traverser.AtStart);
     AssertInvalidOperationsOnTraverserAtStartOrEnd(traverser);
 }
Пример #4
0
 private void TestTraverserForwardTraversal(IListTraverser <int> traverser)
 {
     for (int i = 0; i < 5; ++i)
     {
         Assert.AreEqual(i, traverser.Index);
         Assert.AreEqual(i + 1, traverser.Element);
         traverser.ToNext();
     }
     Assert.IsTrue(traverser.AtEnd);
     AssertInvalidOperationsOnTraverserAtStartOrEnd(traverser);
 }
Пример #5
0
        private void TestReplaceAndInsertOnSingleElementList(IListTraverser <int> traverser)
        {
            traverser.Element = 7;
            Assert.IsTrue(Enumerable.SequenceEqual(new int[] { 7 }, m_list));
            Assert.AreEqual(7, traverser.Element);
            Assert.AreEqual(0, traverser.Index);

            traverser.InsertBefore(4);
            Assert.IsTrue(Enumerable.SequenceEqual(new int[] { 4, 7 }, m_list));
            Assert.AreEqual(7, traverser.Element);
            Assert.AreEqual(1, traverser.Index);

            traverser.InsertAfter(10);
            Assert.IsTrue(Enumerable.SequenceEqual(new int[] { 4, 7, 10 }, m_list));
            Assert.AreEqual(7, traverser.Element);
            Assert.AreEqual(1, traverser.Index);
        }
Пример #6
0
        private void AssertStateOfTraverserOnEmptyList(IListTraverser <int> traverser)
        {
            Assert.IsTrue(traverser.AtStart);
            Assert.IsTrue(traverser.AtEnd);
            Assert.IsFalse(traverser.OnElement);
            Assert.IsFalse(traverser.OnIndex);
            AssertInvalidOperationsOnTraverserAtStartOrEnd(traverser);

            traverser.ToNext();
            Assert.IsTrue(traverser.AtStart);
            Assert.IsTrue(traverser.AtEnd);
            Assert.IsFalse(traverser.OnElement);
            Assert.IsFalse(traverser.OnIndex);
            AssertInvalidOperationsOnTraverserAtStartOrEnd(traverser);

            traverser.ToPrevious();
            Assert.IsTrue(traverser.AtStart);
            Assert.IsTrue(traverser.AtEnd);
            Assert.IsFalse(traverser.OnElement);
            Assert.IsFalse(traverser.OnIndex);
            AssertInvalidOperationsOnTraverserAtStartOrEnd(traverser);
        }