private static void TestEnumerator(Deque <int> deque) { deque.Clear(); PopulateDequePushBack(deque); IEnumerator <int> e = deque.GetEnumerator(); try { int item = e.Current; Debug.Fail("Exception failed"); } catch (Exception ex) { Console.WriteLine(ex.Message); } try { foreach (int item in deque) { Debug.Assert(e.MoveNext()); } Debug.Assert(!e.MoveNext()); int o = e.Current; Debug.Fail("Exception failed"); } catch (Exception ex) { Console.WriteLine(ex.Message); } try { e.Reset(); foreach (int item in deque) { Debug.Assert(e.MoveNext()); } Debug.Assert(!e.MoveNext()); int o = e.Current; Debug.Fail("Exception failed"); } catch (Exception ex) { Console.WriteLine(ex.Message); } try { deque.PushBack(deque.Count); e.Reset(); Debug.Fail("Exception failed"); } catch (Exception ex) { Console.WriteLine(ex.Message); } try { e.MoveNext(); Debug.Fail("Exception failed"); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public Enumerator(Deque <T> owner) { this.owner = owner; currentNode = owner.front; version = owner.version; }
private static void TestCopyTo(Deque <int> deque) { deque.Clear(); PopulateDequePushBack(deque); int[] array = new int[deque.Count]; deque.CopyTo(array, 0); foreach (int i in deque) { Debug.Assert(array[i] == i); } array = new int[deque.Count * 2]; deque.CopyTo(array, deque.Count); foreach (int i in deque) { Debug.Assert(array[i + deque.Count] == i); } array = new int[deque.Count]; try { deque.CopyTo(null, deque.Count); Debug.Fail("Exception failed"); } catch (Exception ex) { Console.WriteLine(ex.Message); } try { deque.CopyTo(array, -1); Debug.Fail("Exception failed"); } catch (Exception ex) { Console.WriteLine(ex.Message); } try { deque.CopyTo(array, deque.Count / 2); Debug.Fail("Exception failed"); } catch (Exception ex) { Console.WriteLine(ex.Message); } try { deque.CopyTo(array, deque.Count); Debug.Fail("Exception failed"); } catch (Exception ex) { Console.WriteLine(ex.Message); } try { deque.CopyTo(new int[10, 10], deque.Count); Debug.Fail("Exception failed"); } catch (Exception ex) { Console.WriteLine(ex.Message); } }