public void EnumeratorTest() { var a = new ArraySlice <int>(0, 1, 2); var iter = a.GetEnumerator(); Assert.IsTrue(iter.MoveNext()); Assert.AreEqual(0, iter.Current); Assert.IsTrue(iter.MoveNext()); Assert.AreEqual(1, iter.Current); Assert.IsTrue(iter.MoveNext()); Assert.AreEqual(2, iter.Current); Assert.IsFalse(iter.MoveNext()); a = new ArraySlice <int>((IList <int>) new List <int>() { 0, 1, 2 }); iter = a.GetEnumerator(); Assert.IsTrue(iter.MoveNext()); Assert.AreEqual(0, iter.Current); Assert.IsTrue(iter.MoveNext()); Assert.AreEqual(1, iter.Current); Assert.IsTrue(iter.MoveNext()); Assert.AreEqual(2, iter.Current); Assert.IsFalse(iter.MoveNext()); a = new ArraySlice <int>(new ArraySlice <int>(0, 1, 2)); iter = a.GetEnumerator(); Assert.IsTrue(iter.MoveNext()); Assert.AreEqual(0, iter.Current); Assert.IsTrue(iter.MoveNext()); Assert.AreEqual(1, iter.Current); Assert.IsTrue(iter.MoveNext()); Assert.AreEqual(2, iter.Current); Assert.IsFalse(iter.MoveNext()); }