def test_add(self): bst = BST() bst.add(10) assert bst.root.val == 10 assert bst.is_empty() is False assert bst.size == 1 assert bst.levels == 1 assert bst.serialize() == '10' assert bst.level_order() == [[10]] assert bst.pre_order() == [10] assert bst.in_order() == [10] assert bst.post_order() == [10] assert bst == BST(serialize='10') bst.add(1) assert bst.root.val == 10 assert bst.is_empty() is False assert bst.size == 2 assert bst.levels == 2 assert bst.serialize() == '10,1,#' assert bst.level_order() == [[10], [1]] assert bst.pre_order() == [10, 1] assert bst.in_order() == [1, 10] assert bst.post_order() == [1, 10] bst.add(20) assert bst.root.val == 10 assert bst.is_empty() is False assert bst.size == 3 assert bst.levels == 2 assert bst.serialize() == '10,1,20' assert bst.level_order() == [[10], [1, 20]] assert bst.pre_order() == [10, 1, 20] assert bst.in_order() == [1, 10, 20] assert bst.post_order() == [1, 20, 10] bst.add(5) bst.add(15) assert bst.root.val == 10 assert bst.is_empty() is False assert bst.size == 5 assert bst.levels == 3 assert bst.serialize() == '10,1,20,#,5,15,#' assert bst.level_order() == [[10], [1, 20], [5, 15]] assert bst.pre_order() == [10, 1, 5, 20, 15] assert bst.in_order() == [1, 5, 10, 15, 20] assert bst.post_order() == [5, 1, 15, 20, 10]
def test_empty_tree(self): bst = BST() assert bst.root is None assert bst.is_empty() is True assert bst.size == 0 assert bst.levels == 0 assert bst.__repr__() == "BST(serialize='')" assert bst.serialize() == '' assert bst.level_order() == [] assert bst.pre_order() == [] assert bst.in_order() == [] assert bst.post_order() == [] assert bst == BST()