def test_sum_priority(self): sumTree = SumTree(10, [Item("A", 6), Item("A", 3), Item("A", 1), Item("A", 0), Item("A", 9), Item("A", 8), Item("A", 5), Item("A", 8), Item("A", 7), Item("A", -1)]) p = 0 for leaf in sumTree.get_leaves(): p += leaf.get_priority() self.assertAlmostEqual(p, sumTree.get_sum_priority(), places=8)
def test_remove_add_items(self): items = [Item("A", 6), Item("A", 3), Item("A", 1), Item("A", 0), Item("A", 9), Item("A", 8), Item("A", 5)] sumTree = SumTree(7, items) total = sumTree.get_sum_priority() x,y,z = Item("X", 99), Item("Y", 98), Item("Z", 97) sumTree.add_item(x) sumTree.add_item(y) sumTree.add_item(z) self.assertListEqual(list(sumTree.get_leaves())[:3], [z, y, x])
def test_changing_priority(self): items = [Item("A", 6), Item("A", 3), Item("A", 1), Item("A", 0), Item("A", 9), Item("A", 8), Item("A", 5)] sumTree = SumTree(7, items) total = sumTree.get_sum_priority() x,y,z = Item("X", 99), Item("Y", 98), Item("Z", 97) sumTree.add_item(x) sumTree.add_item(y) sumTree.add_item(z) curr = None for leaf in sumTree.get_leaves(): if curr is None: curr = leaf.get_priority() continue self.assertGreaterEqual(curr, leaf.get_priority()) curr = leaf.get_priority()