def test_max_depth_top_down(): assert max_depth_top_down(get_n_nary_tree()) == 4
def test_max_depth_bottom_up(): assert max_depth_bottom_up(get_n_nary_tree()) == 4
def test_preorder_traversal(): root = get_n_nary_tree() assert preorder_traversal(root) == [1, 2, 5, 7, 6, 3, 8, 4, 9, 10, 11, 12]
def test_encode_decode(): tree = get_n_nary_tree() values = get_n_ary_tree_values(tree) assert get_n_ary_tree_values(decode(encode(tree))) == values
def test_postorder_traversal_iterative(): assert postorder_traversal_iterative(get_n_nary_tree()) == [7, 5, 6, 2, 8, 3, 9, 10, 12, 11, 4, 1] assert postorder_traversal_iterative(None) == []
def test_level_order_traversal(): assert level_order_traversal(get_n_nary_tree()) == [[1], [2, 3, 4], [5, 6, 8, 9, 10, 11], [7, 12]]