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 directs the data science and research efforts at Quaetrix, a data analytics company located near Redmond, Washington. Before joining Quaetrix, James was a senior research engineer at Microsoft. James can be reached at [email protected].

comments powered by Disqus

Featured

  • Visual Studio Takes Aim at Copilot Billing Shock

    Beyond Copilot usage visibility, the June update delivers several other enhancements centered on AI-assisted development, security and quality-of-life improvements. Here's a quick rundown of the remaining additions announced by Microsoft.

  • Claude AI Gets Yet Another Boost in VS Code 1.128

    The July 8, 2026, Visual Studio Code update expands agent workflows, chat attachments, browser-tab controls, OS-level shortcuts and enterprise telemetry management.

  • TypeScript 7 Arrives to Rock VS Code with Go-Powered Speed

    Microsoft says TypeScript 7, announced July 8, brings native Go performance to VS Code, Visual Studio and other editors.

  • Full-Stack with a Side of Copilot: Building and Deploying an App the AI-Accelerated Way

    In this Q&A, developer and VSLive! speaker Esteban Garcia explains how GitHub Copilot can accelerate the full software development lifecycle -- from architecture and code to tests, CI/CD, and Azure deployment -- and how to use it as a repeatable engineering workflow rather than just a faster autocomplete tool.

Subscribe on YouTube