// // Queue.cs // // Author: // Ben Maurer (bmaurer@ximian.com) // #if NET_2_0 using System; using System.Collections; using System.Collections.Generic; using NUnit.Framework; namespace MonoTests.System.Collections.Generic { [TestFixture] public class QueueTest : Assertion { [Test] public void TestCtor () { Queue a = new Queue (); Queue b = new Queue (1); Queue c = new Queue (); Queue d = new Queue (1); Queue e = new Queue (0); } [Test] [ExpectedException (typeof (ArgumentOutOfRangeException))] public void TestCtorEx () { Queue a = new Queue (-1); } [Test] public void TestCtorEnum () { List l = new List (); l.Add (1); l.Add (2); l.Add (3); Queue s = new Queue (l); AssertDequeue (s, 1); AssertDequeue (s, 2); AssertDequeue (s, 3); } [Test] [ExpectedException (typeof (ArgumentNullException))] public void TestCtorEnumNull () { Queue s = new Queue (null); } [Test] public void TestClear() { Queue s = new Queue (); s.Clear (); AssertEquals (s.Count, 0); s.Enqueue (1); s.Enqueue (2); AssertEquals (s.Count, 2); s.Clear (); AssertEquals (s.Count, 0); } [Test] public void TestContains () { Stack s = new Stack (); AssertEquals (s.Contains (1), false); s.Push (1); AssertEquals (s.Contains (1), true); AssertEquals (s.Contains (0), false); } [Test] public void TestCopyTo () { int [] x = new int [3]; Queue z = new Queue (); z.Enqueue (1); z.Enqueue (2); x [0] = 10; z.CopyTo (x, 1); AssertEquals (x [0], 10); AssertEquals (x [1], 1); AssertEquals (x [2], 2); } [Test] public void TestPeek () { Queue s = new Queue (); s.Enqueue (1); AssertEquals (s.Peek (), 1); AssertEquals (s.Count, 1); } [Test] [ExpectedException (typeof (InvalidOperationException))] public void TestPeekEx () { Queue s = new Queue (); s.Peek (); } [Test] [ExpectedException (typeof (InvalidOperationException))] public void TestPeekEx2 () { Queue s = new Queue (); s.Enqueue (1); s.Dequeue (); s.Peek (); } [Test] public void TestDequeue () { Queue s = new Queue (); s.Enqueue (1); AssertEquals (s.Dequeue (), 1); AssertEquals (s.Count, 0); } [Test] [ExpectedException (typeof (InvalidOperationException))] public void TestDequeueEx () { Queue s = new Queue (); s.Dequeue (); } [Test] [ExpectedException (typeof (InvalidOperationException))] public void TestDequeueEx2 () { Queue s = new Queue (); s.Enqueue (1); s.Dequeue (); s.Dequeue (); } [Test] public void TestEnqueue () { Queue s = new Queue (); s.Enqueue (1); AssertEquals (s.Count, 1); s.Enqueue (2); AssertEquals (s.Count, 2); for (int i = 0; i < 100; i ++) s.Enqueue (i); AssertEquals (s.Count, 102); } [Test] public void TestToArray () { Queue s = new Queue (); int [] x = s.ToArray (); AssertEquals (x.Length, 0); s.Enqueue (1); x = s.ToArray (); AssertEquals (x.Length, 1); AssertEquals (x [0], 1); } [Test] public void TestTrimToSize () { Queue s = new Queue (); s.TrimToSize (); s.Enqueue (1); s.TrimToSize (); } [Test] public void TestEnumerator () { Queue s = new Queue (); foreach (int x in s) Fail (); s.Enqueue (1); int i = 0; foreach (int x in s) { AssertEquals (i, 0); AssertEquals (x, 1); i ++; } for (i = 2; i < 100; i ++) s.Enqueue (i); i = 1; foreach (int x in s) { AssertEquals (x, i); i ++; } } void AssertDequeue (Queue s, T t) { AssertEquals (s.Dequeue (), t); } } } #endif