public void PriorityQueueDecreaseKeyTest() { var minpq = new PriorityQueue<float>(new[] { 0.3f, 0.7f, 0.1f, 0.4f, 0.5f, 0.2f, 0.9f, 0.6f }, ExtremeType.Minimum); Assert.AreEqual(0.1f, minpq.PeekExtreme()); minpq.ModifyValue(0.4f, 0.01f); Assert.AreEqual(0.01f, minpq.PeekExtreme()); minpq.ModifyValue(0.01f, 0.001f); Assert.AreEqual(0.001f, minpq.PeekExtreme()); float last = 0.0f; while (!minpq.IsEmpty) { float curr = minpq.DeleteExtreme(); Assert.Greater(curr, last); last = curr; } }
public void PriorityQueueMinTest() { var minpq = new PriorityQueue<int>(new[] { 3, 7, 1, 4, 5, 2, 9, 6 }, ExtremeType.Minimum); int last = 0; while (!minpq.IsEmpty) { int curr = minpq.DeleteExtreme(); Assert.Greater(curr, last); last = curr; } }
public void PriorityQueueMaxTest() { var maxpq = new PriorityQueue<int>(new[] { 3, 7, 1, 4, 5, 2, 9, 6 }, ExtremeType.Maximum); int last = Int32.MaxValue; while (!maxpq.IsEmpty) { int curr = maxpq.DeleteExtreme(); Assert.Less(curr, last); last = curr; } }
public void PriorityQueueMinFloatTest() { var minpq = new PriorityQueue<float>(new[] { 0.3f, 0.7f, 0.1f, 0.4f, 0.5f, 0.2f, 0.9f, 0.6f }, ExtremeType.Minimum); float last = 0.0f; while (!minpq.IsEmpty) { float curr = minpq.DeleteExtreme(); Assert.Greater(curr, last); last = curr; } }
public void PriorityQueueInsertTest() { var values = new[] { 3, 7, 1, 4, 5, 2, 9, 6 }; var maxpq = new PriorityQueue<int>(ExtremeType.Maximum); Assert.IsTrue(maxpq.IsEmpty); for (int i = 0; i < values.Length; i++) { maxpq.Insert(values[i]); } Assert.AreEqual(9, maxpq.DeleteExtreme()); maxpq.Insert(0); maxpq.Insert(8); int last = Int32.MaxValue; while (!maxpq.IsEmpty) { int curr = maxpq.DeleteExtreme(); Assert.Less(curr, last); last = curr; } }