def METHOD_NAME(self, draw):
    in_shape = draw(
        st.lists(
            st.integers(
                min_value=1, max_value=64), min_size=1, max_size=4))
    in_shape = draw(st.sampled_from([in_shape, []]))
    input_type = draw(st.sampled_from(["float32", "int32", "int64"]))
    def generate_input(*args, **kwargs):
        if input_type == "float32":
            return np.random.normal(1.0, 6.0, in_shape).astype(np.float32)
        elif input_type == "int32":
            return np.random.normal(1.0, 6.0, in_shape).astype(np.int32)
        elif input_type == "int64":
            return np.random.normal(1.0, 6.0, in_shape).astype(np.int64)
    ops_config = OpConfig(
        type="shape",
        inputs={"Input": ["input_data"]},
        outputs={"Out": ["output_data"]},
        attrs={})
    program_config = ProgramConfig(
        ops=[ops_config],
        weights={},
        inputs={
            "input_data": TensorConfig(
                data_gen=partial(generate_input), lod=[[0, 2]])
        },
        outputs=["output_data"])
    return program_config