public void TestCase() { IList<string> list = new System.Collections.Generic.List<string> { "First", "Second", "Third" }; var enumerator = list.GetLoopedTwoWayEnumerator (); Assert.AreEqual (null, enumerator.Current); Assert.IsTrue (enumerator.MoveNext ()); Assert.AreEqual ("First", enumerator.Current); Assert.IsTrue (enumerator.MoveNext ()); Assert.AreEqual ("Second", enumerator.Current); Assert.IsTrue (enumerator.MoveNext ()); Assert.AreEqual ("Third", enumerator.Current); Assert.IsTrue (enumerator.MoveNext ()); Assert.AreEqual ("First", enumerator.Current); Assert.IsTrue (enumerator.MoveNext ()); Assert.AreEqual ("Second", enumerator.Current); // обратный ход Assert.IsTrue (enumerator.MovePrevious ()); Assert.AreEqual ("First", enumerator.Current); Assert.IsTrue (enumerator.MovePrevious ()); Assert.AreEqual ("Third", enumerator.Current); Assert.IsTrue (enumerator.MovePrevious ()); Assert.AreEqual ("Second", enumerator.Current); Assert.IsTrue (enumerator.MovePrevious ()); Assert.AreEqual ("First", enumerator.Current); Assert.IsTrue (enumerator.MovePrevious ()); Assert.AreEqual ("Third", enumerator.Current); Assert.IsTrue (enumerator.MoveNext ()); Assert.AreEqual ("First", enumerator.Current); }