def test_simple(self, override_main_function):
        """
        Input graph:

            x -> shape -> add

        Output graph:

            const
        """
        symbolic_shape = (get_new_symbol(), get_new_symbol())
        fixed_shape = (2, 3)
        new_function_name = "main" if override_main_function else "materialization"

        @mb.program(input_specs=[mb.TensorSpec(shape=symbolic_shape)])
        def prog(x):
            shape = mb.shape(x=x)
            return mb.add(x=shape, y=1)

        graph_pass = PASS_REGISTRY["common::materialize_symbolic_shape_program"]
        graph_pass.function_name_to_materialization_map = {new_function_name: {"x": fixed_shape}}
        prev_prog, _, _ = apply_pass_and_basic_check(
            prog, graph_pass, skip_output_shape_check=True, skip_function_name_check=True
        )
        apply_pass_and_basic_check(prog, "common::const_elimination")

        if override_main_function:
            assert set(prog.functions.keys()) == {"main"}
        else:
            assert set(prog.functions.keys()) == {"main", "materialization"}
            assert prog.functions["main"].inputs["x"].shape == symbolic_shape
            assert get_op_types_in_program(prev_prog, "main") == get_op_types_in_program(
                prog, "main"
            )
        assert prog.functions[new_function_name].inputs["x"].shape == fixed_shape
        assert len(get_op_types_in_program(prog, new_function_name)) == 0

        Input graph:

            x -> shape -> add

        Output graph:

            const
        
coremltools/converters/mil/mil/passes/tests/test_symbol_transform.py