public void EnumeratorTest() { int count = 100; IEnumerable <int> items = Enumerable.Range(0, count); IPersistentQueue <int> queue = PersistentQueue <int> .Empty; foreach (int item in items) { queue = queue.Enqueue(item); } foreach (IEnumerator enumerator in new IEnumerator[] { queue.GetEnumerator(), ((IEnumerable)queue).GetEnumerator() }) { foreach (int item in items) { Assert.True(enumerator.MoveNext()); Assert.Equal(item, enumerator.Current); } Assert.False(enumerator.MoveNext()); } }
private static void CheckEmptyBehaviour <T>(IPersistentQueue <T> queue) { Assert.Equal(0, queue.Count); Assert.False(queue.GetEnumerator().MoveNext()); Assert.Throws <InvalidOperationException>(() => queue.Dequeue()); }