public void Enumerate()
{
int[] a = new int[4];
int siz = 0;
foreach (int i in queue)
siz++;
Assert.AreEqual(0, siz);
queue.Add(8); queue.Add(18); queue.Add(8); queue.Add(3);
foreach (int i in queue)
a[siz++] = i;
Assert.AreEqual(4, siz);
Array.Sort(a, 0, siz);
Assert.AreEqual(3, a[0]);
Assert.AreEqual(8, a[1]);
Assert.AreEqual(8, a[2]);
Assert.AreEqual(18, a[3]);
siz = 0;
Assert.AreEqual(18, queue.DeleteMax());
foreach (int i in queue)
a[siz++] = i;
Assert.AreEqual(3, siz);
Array.Sort(a, 0, siz);
Assert.AreEqual(3, a[0]);
Assert.AreEqual(8, a[1]);
Assert.AreEqual(8, a[2]);
siz = 0;
Assert.AreEqual(8, queue.DeleteMax());
foreach (int i in queue)
a[siz++] = i;
Assert.AreEqual(2, siz);
Array.Sort(a, 0, siz);
Assert.AreEqual(3, a[0]);
Assert.AreEqual(8, a[1]);
siz = 0;
Assert.AreEqual(8, queue.DeleteMax());
foreach (int i in queue)
a[siz++] = i;
Assert.AreEqual(1, siz);
Assert.AreEqual(3, a[0]);
}