5 // Ben Maurer (bmaurer@ximian.com)
10 using System.Collections;
11 using System.Collections.Generic;
13 using NUnit.Framework;
15 namespace MonoTests.System.Collections.Generic {
17 public class QueueTest : Assertion
20 public void TestCtor ()
22 Queue <int> a = new Queue <int> ();
23 Queue <int> b = new Queue <int> (1);
24 Queue <object> c = new Queue <object> ();
25 Queue <object> d = new Queue <object> (1);
26 Queue <object> e = new Queue <object> (0);
30 [ExpectedException (typeof (ArgumentOutOfRangeException))]
31 public void TestCtorEx ()
33 Queue <int> a = new Queue <int> (-1);
37 public void TestCtorEnum ()
39 List <int> l = new List <int> ();
44 Queue <int> s = new Queue <int> (l);
52 [ExpectedException (typeof (ArgumentNullException))]
53 public void TestCtorEnumNull ()
55 Queue <int> s = new Queue <int> (null);
59 public void TestClear()
61 Queue <int> s = new Queue <int> ();
64 AssertEquals (s.Count, 0);
69 AssertEquals (s.Count, 2);
73 AssertEquals (s.Count, 0);
77 public void TestContains ()
79 Stack <int> s = new Stack <int> ();
81 AssertEquals (s.Contains (1), false);
85 AssertEquals (s.Contains (1), true);
86 AssertEquals (s.Contains (0), false);
90 public void TestCopyTo ()
92 int [] x = new int [3];
93 Queue <int> z = new Queue <int> ();
99 AssertEquals (x [0], 10);
100 AssertEquals (x [1], 1);
101 AssertEquals (x [2], 2);
105 public void TestPeek ()
107 Queue <int> s = new Queue <int> ();
110 AssertEquals (s.Peek (), 1);
111 AssertEquals (s.Count, 1);
115 [ExpectedException (typeof (InvalidOperationException))]
116 public void TestPeekEx ()
118 Queue <int> s = new Queue <int> ();
123 [ExpectedException (typeof (InvalidOperationException))]
124 public void TestPeekEx2 ()
126 Queue <int> s = new Queue <int> ();
133 public void TestDequeue ()
135 Queue <int> s = new Queue <int> ();
138 AssertEquals (s.Dequeue (), 1);
139 AssertEquals (s.Count, 0);
143 [ExpectedException (typeof (InvalidOperationException))]
144 public void TestDequeueEx ()
146 Queue <int> s = new Queue <int> ();
151 [ExpectedException (typeof (InvalidOperationException))]
152 public void TestDequeueEx2 ()
154 Queue <int> s = new Queue <int> ();
161 public void TestEnqueue ()
163 Queue <int> s = new Queue <int> ();
165 AssertEquals (s.Count, 1);
167 AssertEquals (s.Count, 2);
169 for (int i = 0; i < 100; i ++)
172 AssertEquals (s.Count, 102);
176 public void TestToArray ()
178 Queue <int> s = new Queue <int> ();
180 int [] x = s.ToArray ();
182 AssertEquals (x.Length, 0);
186 AssertEquals (x.Length, 1);
187 AssertEquals (x [0], 1);
191 public void TestTrimToSize ()
193 Queue <int> s = new Queue <int> ();
200 public void TestEnumerator ()
202 Queue <int> s = new Queue <int> ();
211 foreach (int x in s) {
217 for (i = 2; i < 100; i ++)
222 foreach (int x in s) {
228 void AssertDequeue <T> (Queue <T> s, T t)
230 AssertEquals (s.Dequeue (), t);