public void testAdd() { PseudoRemovePriorityQueue<Integer> pq = new PseudoRemovePriorityQueue<Integer>(10); assertEquals(0, pq.size()); pq.add(Integer.valueOf(1), 1.0); assertEquals(1, pq.size()); pq.add(Integer.valueOf(2), 2.0); assertEquals(2, pq.size()); pq.add(Integer.valueOf(3), 2.0); // different element with same priority assertEquals(3, pq.size()); pq.add(Integer.valueOf(3), 3.0); // same element with different priority assertEquals(3, pq.size()); // should not be added! assertEquals(3, iteratorElementCount(pq.iterator())); }
public void testRemoveAndAdd_HigherPriority() { PseudoRemovePriorityQueue<Integer> pq = new PseudoRemovePriorityQueue<Integer>(10); pq.add(Integer.valueOf(5), 5.0); pq.add(Integer.valueOf(3), 3.0); pq.add(Integer.valueOf(6), 6.0); assertEquals(3, pq.size()); // test removing an element and adding it with higher priority (=lower value) pq.remove(Integer.valueOf(5)); assertEquals(2, pq.size()); pq.add(Integer.valueOf(5), 2.5); assertEquals(3, pq.size()); assertEquals(Integer.valueOf(5), pq.poll()); assertEquals(Integer.valueOf(3), pq.poll()); assertEquals(Integer.valueOf(6), pq.poll()); assertNull(pq.poll()); }
public void testRemoveAndAdd_LowerPriority() { PseudoRemovePriorityQueue<Integer> pq = new PseudoRemovePriorityQueue<Integer>(10); pq.add(Integer.valueOf(5), 5.0); pq.add(Integer.valueOf(3), 3.0); pq.add(Integer.valueOf(6), 6.0); assertEquals(3, pq.size()); // test removing an element and adding it with lower priority (=higher value) pq.remove(Integer.valueOf(5)); assertEquals(2, pq.size()); pq.add(Integer.valueOf(5), 7.0); assertEquals(3, pq.size()); assertEquals(Integer.valueOf(3), pq.poll()); assertEquals(Integer.valueOf(6), pq.poll()); assertEquals(Integer.valueOf(5), pq.poll()); assertNull(pq.poll()); }
public void testPoll() { PseudoRemovePriorityQueue<Integer> pq = new PseudoRemovePriorityQueue<Integer>(10); pq.add(Integer.valueOf(5), 5.0); pq.add(Integer.valueOf(3), 3.0); pq.add(Integer.valueOf(6), 6.0); assertEquals(3, pq.size()); assertEquals(Integer.valueOf(3), pq.poll()); assertEquals(2, pq.size()); pq.add(Integer.valueOf(1), 1.0); pq.add(Integer.valueOf(4), 4.0); pq.add(Integer.valueOf(9), 9.0); assertEquals(5, pq.size()); assertEquals(Integer.valueOf(1), pq.poll()); assertEquals(Integer.valueOf(4), pq.poll()); assertEquals(Integer.valueOf(5), pq.poll()); assertEquals(Integer.valueOf(6), pq.poll()); assertEquals(Integer.valueOf(9), pq.poll()); assertEquals(0, pq.size()); assertNull(pq.poll()); }
assertEquals(2, pq.size()); coll = getIteratorCollection(pq.iterator()); assertEquals(2, coll.size()); assertEquals(2, pq.size()); coll = getIteratorCollection(pq.iterator()); assertEquals(2, coll.size()); assertEquals(2, pq.size()); coll = getIteratorCollection(pq.iterator()); assertEquals(2, coll.size());
public void testAdd_Null() { PseudoRemovePriorityQueue<Integer> pq = new PseudoRemovePriorityQueue<Integer>(10); try { pq.add(null, 1.0); fail("missing NullPointerException."); } catch (NullPointerException e) { log.info("catched expected exception. ", e); } assertEquals(0, pq.size()); assertEquals(0, iteratorElementCount(pq.iterator())); }
pq.add(entry2, 6.0); assertEquals(3, pq.size()); assertEquals(3, pq.size()); assertEquals(entry0, pq.poll()); assertEquals(entry1, pq.poll()); pq.add(entry1, 5.0); pq.add(entry2, 6.0); assertEquals(3, pq.size()); pq.decreaseKey(entry2, 4.0); assertEquals(3, pq.size()); assertEquals(entry2, pq.poll()); assertEquals(entry1, pq.poll());