@Test
 public void HeapInsertAndPollTest() {
   Set<Integer> nodes = new HashSet<Integer>();
   for (int i = 0; i < 100; i++) {
     nodes.add(new Random().nextInt(1000));
   }
   List<Integer> toBeSorted = new ArrayList<Integer>(nodes);
   Collections.sort(toBeSorted);
   for (Integer n : nodes) {
     heap.offer(n);
   }
   Set<Integer> sortedOutput = new LinkedHashSet<Integer>();
   try {
     while (heap.peek() != null) {
       sortedOutput.add(heap.poll());
     }
   } catch (IllegalArgumentException e) {
     // fine.
   }
   Assert.assertEquals(toBeSorted, sortedOutput);
 }
 @Test
 public void HeapPollSortTest() {
   heap.offer(25);
   heap.offer(24);
   heap.offer(25);
   heap.offer(23);
   heap.offer(342);
   heap.offer(28);
   heap.offer(37);
   heap.offer(201);
   heap.offer(230);
   heap.offer(2308);
   heap.offer(1);
   int one = heap.poll();
   assertEquals(1, one);
   String desiredTest = "[23,24,25,25,342,28,37,201,230,2308,]";
   assertEquals(desiredTest, heap.toString());
 }
 @Test
 public void HeapPollTest() {
   heap.offer(25);
   heap.offer(24);
   heap.offer(25);
   heap.offer(23);
   heap.offer(342);
   heap.offer(28);
   heap.offer(37);
   heap.offer(201);
   heap.offer(230);
   heap.offer(2308);
   heap.offer(1);
   assertEquals((Integer) 1, (Integer) heap.peek());
 }
 @Test
 public void HeapOfferTest() {
   heap.offer(25);
   heap.offer(24);
   heap.offer(25);
   heap.offer(23);
   heap.offer(342);
   heap.offer(28);
   heap.offer(37);
   heap.offer(201);
   heap.offer(230);
   heap.offer(2308);
   heap.offer(1);
   String desiredTest = "[1,23,25,25,24,28,37,201,230,2308,342,]";
   assertEquals(desiredTest, heap.toString());
 }