Ejemplo n.º 1
0
class BinarySearchTreeTests(unittest.TestCase):
    def setUp(self):
        self.bst = BinarySearchTree(5)

    def test_depth_first_for_each_executes_callback(self):
        arr = []
        cb = lambda x: arr.append(x)

        self.bst.insert(2)
        self.bst.insert(3)
        self.bst.insert(7)
        self.bst.insert(9)
        self.bst.depth_first_for_each(cb)
        # print('test_depth_first arr:',arr)
        self.assertEqual(arr, [5, 2, 3, 7, 9])

    def test_breadth_first_for_each_executes_callback(self):
        arr = []
        cb = lambda x: arr.append(x)

        self.bst.insert(3)
        self.bst.insert(4)
        self.bst.insert(10)
        self.bst.insert(9)
        self.bst.insert(11)
        self.bst.breadth_first_for_each(cb)
        # print('test_breadth_first arr:',arr)
        self.assertEqual(arr, [5, 3, 10, 4, 9, 11])
Ejemplo n.º 2
0
class BinarySearchTreeTests(unittest.TestCase):
    def setUp(self):
        self.bst = BinarySearchTree(5)

    def test_breadth_first_traversal_1(self):
        arr = []

        def cb(x):
            return arr.append(x)

        self.bst.breadth_first_for_each(cb)

        self.assertEqual(arr, [5])

    def test_breadth_first_traversal_2(self):
        arr = []

        def cb(x):
            return arr.append(x)

        self.bst.insert(3)
        self.bst.insert(4)
        self.bst.insert(10)
        self.bst.insert(9)
        self.bst.insert(11)
        self.bst.breadth_first_for_each(cb)

        self.assertEqual(arr, [5, 3, 10, 4, 9, 11])
Ejemplo n.º 3
0
class BinarySearchTreeTests(unittest.TestCase):
    def setUp(self):
        self.bst = BinarySearchTree(
            5)  # init binaryseachtree node with value of 5
        #between every test you get a single binary search tree node with 5

    def test_depth_first_for_each_executes_callback(self):
        arr = []
        cb = lambda x: arr.append(x)  #callback taking x input and
        #appending it to current array

        self.bst.insert(2)
        self.bst.insert(3)
        self.bst.insert(7)
        self.bst.insert(9)
        self.bst.depth_first_for_each(cb)
        # cb starts at root(5) is going to
        # traverse the tree goes left side to the bottom of the tree first, then right
        self.assertEqual(arr, [5, 2, 3, 7, 9])  #expected output

    def test_breadth_first_for_each_executes_callback(self):
        arr = []
        cb = lambda x: arr.append(x)
        # goes level by level
        self.bst.insert(3)
        self.bst.insert(4)
        self.bst.insert(10)
        self.bst.insert(9)
        self.bst.insert(11)
        self.bst.breadth_first_for_each(cb)

        self.assertEqual(arr, [5, 3, 10, 4, 9, 11])