def test_replaceLeaves_expandTree(self): tree = Node(None, Node(None, 10, 20), 30) expected = Node(None, Node(None, Node(None, 11, Node(None, 12, 13)), Node(None, 21, Node(None, 22, 23))), Node(None, 31, Node(None, 32, 33))) result = tree.replaceLeaves( lambda p, v: Node(None, v+1, Node(None, v+2, v+3))) self.assertEqual(result, expected)
def test_replaceLeaves(self): tree = Node(None, 10, 20) expected = Node(None, 11, 21) result = tree.replaceLeaves(lambda p, v: v+1) self.assertEqual(result, expected) tree = Node(None, Node(None, 10, 11), 20) expected = Node(None, Node(None, 11, 12), 21) result = tree.replaceLeaves(lambda p, v: v+1) self.assertEqual(result, expected) tree = Node(None, Node(None, 10, Node(None, 11, 12)), Node(None, Node(None, 20, 21), 22)) expected = Node(None, Node(None, "LL", Node(None, "LRL", "LRR")), Node(None, Node(None, "RLL", "RLR"), "RR")) result = tree.replaceLeaves(lambda p, v: p) self.assertEqual(result, expected)
def test_mapPathsToLeaves(self): tree = Node(None, 10, 20) expected = {"L": 10, "R": 20} result = tree.mapPathsToLeaves() self.assertEqual(result, expected) tree = Node(None, Node(None, 10, 11), 20) expected = {"LL": 10, "LR": 11, "R": 20} result = tree.mapPathsToLeaves() self.assertEqual(result, expected) tree = Node(None, Node(None, 10, Node(None, 11, 12)), Node(None, Node(None, 20, 21), 22)) expected = {"LL": 10, "LRL": 11, "LRR": 12, "RLL": 20, "RLR": 21, "RR": 22} result = tree.mapPathsToLeaves() self.assertEqual(result, expected)