Priority Queues with C#: Listing 6.

Testing a priority queue.

static void TestPriorityQueue(int numOperations)
{
  Random rand = new Random(0);
  PriorityQueue <Employee > pq = 
    new PriorityQueue <Employee >();
  for (int op = 0; op  < numOperations; ++op)
  {
    int opType = rand.Next(0, 2);

    if (opType == 0) // enqueue
    {
      string lastName = op + "man";
      double priority = 
        (100.0 - 1.0) * rand.NextDouble() + 1.0;
      pq.Enqueue(new Employee(lastName, priority));
      if (pq.IsConsistent() == false)
      {
        Console.WriteLine(
          "Test fails after enqueue operation # " + op);
      }
    }
    else // Dequeue
    {
      if (pq.Count()  > 0)
      {
        Employee e = pq.Dequeue();
        if (pq.IsConsistent() == false)
        {
          Console.WriteLine(
            "Test fails after dequeue operation # " + op);
        }
      }
    }
  } // for
  Console.WriteLine("\nAll tests passed");
}

About the Author

Dr. James McCaffrey works for Microsoft Research in Redmond, Wash. He has worked on several Microsoft products including Azure and Bing. James can be reached at [email protected].

comments powered by Disqus

Featured

  • Microsoft Details Native Integration of Elastic on Azure

    Microsoft detailed the native integration of Elastic tech with its Azure cloud computing platform, increasing application observability.

  • Java on Visual Studio Code Going Cloud Native

    Cloud-native development figures prominently in a new roadmap published by Microsoft's Java on Visual Studio Code dev team.

  • Speed Lines Graphic

    Quantum-Inspired Annealing Using C# or Python

    Dr. James McCaffrey of Microsoft Research explains a new idea that slightly modifies standard simulated annealing by borrowing ideas from quantum mechanics.

  • Visual Studio 2022 v17.1 Preview 3 Improves Web Tools

    Microsoft quietly shipped Visual Studio 2022 v17.1 Preview 3 with enhancements to web tools.

Upcoming Events