feat: Initial commit of PriorityQueue collection

This commit is contained in:
Chris Cameron
2018-05-10 13:51:43 -04:00
parent b1c7e527c4
commit 87427096d2
4 changed files with 291 additions and 1 deletions

View File

@@ -0,0 +1,140 @@
using System.Collections.Generic;
using ICD.Common.Utils.Collections;
using NUnit.Framework;
namespace ICD.Common.Utils.Tests.Collections
{
[TestFixture]
public sealed class PriorityQueueTest
{
#region Properties
[Test]
public void CountTest()
{
PriorityQueue<int> queue = new PriorityQueue<int>();
Assert.AreEqual(0, queue.Count);
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);
Assert.AreEqual(3, queue.Count);
queue.Clear();
Assert.AreEqual(0, queue.Count);
}
[Test]
public void IsSynchronizedTest()
{
PriorityQueue<int> queue = new PriorityQueue<int>();
Assert.IsFalse(queue.IsSynchronized);
}
[Test]
public void SyncRootTest()
{
PriorityQueue<int> queue = new PriorityQueue<int>();
Assert.AreEqual(queue, queue.SyncRoot);
}
#endregion
#region Methods
[Test]
public void ClearTest()
{
PriorityQueue<int> queue = new PriorityQueue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);
Assert.AreEqual(3, queue.Count);
queue.Clear();
Assert.AreEqual(0, queue.Count);
}
[Test]
public void EnqueueTest()
{
PriorityQueue<int> queue = new PriorityQueue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);
Assert.AreEqual(3, queue.Count);
}
[Test]
public void EnqueuePriorityTest()
{
PriorityQueue<int> queue = new PriorityQueue<int>();
queue.Enqueue(1, 3);
queue.Enqueue(2, 2);
queue.Enqueue(3, 1);
Assert.AreEqual(3, queue.Count);
List<int> dequeue = new List<int>
{
queue.Dequeue(),
queue.Dequeue(),
queue.Dequeue()
};
Assert.AreEqual(3, dequeue[0]);
Assert.AreEqual(2, dequeue[1]);
Assert.AreEqual(1, dequeue[2]);
}
[Test]
public void DequeueTest()
{
PriorityQueue<int> queue = new PriorityQueue<int>();
queue.Enqueue(1, 3);
queue.Enqueue(2, 2);
queue.Enqueue(3, 1);
Assert.AreEqual(3, queue.Count);
List<int> dequeue = new List<int>
{
queue.Dequeue(),
queue.Dequeue(),
queue.Dequeue()
};
Assert.AreEqual(3, dequeue[0]);
Assert.AreEqual(2, dequeue[1]);
Assert.AreEqual(1, dequeue[2]);
Assert.AreEqual(0, queue.Count);
}
[Test]
public void GetEnumeratorTest()
{
Assert.Inconclusive();
}
[Test]
public void CopyToTest()
{
Assert.Inconclusive();
}
#endregion
}
}