Files
Nitrox/Nitrox.Test/Model/DataStructures/PriorityQueueTest.cs
2025-07-06 00:23:46 +02:00

79 lines
2.3 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace NitroxModel.DataStructures
{
using StringPriorityQueue = PriorityQueue<string>;
[TestClass]
public class PriorityQueueTest
{
[TestMethod]
public void SameOrder()
{
StringPriorityQueue queue = new StringPriorityQueue();
queue.Enqueue(0, "First");
queue.Enqueue(0, "Second");
queue.Enqueue(0, "Third");
Assert.AreEqual("First", queue.Dequeue());
Assert.AreEqual("Second", queue.Dequeue());
Assert.AreEqual("Third", queue.Dequeue());
}
[TestMethod]
public void DifferentOrder()
{
StringPriorityQueue queue = new StringPriorityQueue();
queue.Enqueue(3, "First");
queue.Enqueue(2, "Second");
queue.Enqueue(1, "Third");
Assert.AreEqual("First", queue.Dequeue());
Assert.AreEqual("Second", queue.Dequeue());
Assert.AreEqual("Third", queue.Dequeue());
}
[TestMethod]
public void SomeAreSameOrder()
{
StringPriorityQueue queue = new StringPriorityQueue();
queue.Enqueue(2, "First");
queue.Enqueue(2, "Second");
queue.Enqueue(0, "Third");
Assert.AreEqual("First", queue.Dequeue());
Assert.AreEqual("Second", queue.Dequeue());
Assert.AreEqual("Third", queue.Dequeue());
}
[TestMethod]
public void PrioritySanity()
{
StringPriorityQueue queue = new StringPriorityQueue();
queue.Enqueue(2, "Second");
queue.Enqueue(3, "First");
queue.Enqueue(1, "Third");
Assert.AreEqual("First", queue.Dequeue());
Assert.AreEqual("Second", queue.Dequeue());
Assert.AreEqual("Third", queue.Dequeue());
}
[TestMethod]
public void CountSanity()
{
StringPriorityQueue queue = new StringPriorityQueue();
queue.Enqueue(2, "Second");
queue.Enqueue(3, "First");
queue.Enqueue(1, "Third");
Assert.AreEqual(3, queue.Count);
queue.Dequeue();
queue.Dequeue();
Assert.AreEqual(1, queue.Count);
}
}
}