예제 #1
0
 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)
예제 #2
0
  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)
예제 #3
0
  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)