def test_updates_and_deletes(self): pq = PQDict() items = generateData('int') dkeys, pkeys = zip(*items) # heapify a sequence of items pq = PQDict(items) for oper in range(100): if oper & 1: #update random item dkey = random.choice(dkeys) p_new = random.randrange(25) pq[dkey] = p_new self.assertTrue(pq[dkey]==p_new) elif pq: #delete random item dkey = random.choice(list(pq.keys())) del pq[dkey] self.assertTrue(dkey not in pq) self.check_heap_invariant(pq) self.check_index(pq)
def test_keys(self): # the "keys" are dictionary keys pq = PQDict(self.items) self.assertEqual(sorted(self.dkeys), sorted(pq.keys())) self.assertEqual(sorted(self.pkeys), [pq[dkey] for dkey in pq.copy().iterkeys()])