def test_batch_decrement2(self): pq = PriorityQueue() pq.add_element(Deneme('a', 1)) pq.add_element(Deneme('b', 5)) pq.add_element(Deneme('c', 10)) pq.add_element(Deneme('a', 7)) pq.add_element(Deneme('c', 9)) pq.add_element(Deneme('a', 12)) self.assertTrue(pq.elements[0].val == 12) self.assertTrue(pq.elements[1].val == 9) self.assertTrue(pq.elements[2].val == 10) self.assertTrue(pq.elements[3].val == 1) self.assertTrue(pq.elements[4].val == 7) self.assertTrue(pq.elements[5].val == 5) for i in xrange(6, len(pq.elements)): self.assertTrue(pq.elements[i] is None) def validate(obj): return obj.label == 'c' def update(obj): obj.val -= 6 pq.batch_decrement(validate, update) self.assertTrue(pq.elements[0].val == 12) self.assertTrue(pq.elements[1].val == 7) self.assertTrue(pq.elements[2].val == 5) self.assertTrue(pq.elements[3].val == 1) self.assertTrue(pq.elements[4].val == 3) self.assertTrue(pq.elements[5].val == 4)