def METHOD_NAME(self, draw):
    input_data_x_shape = draw(
        st.lists(
            st.integers(
                min_value=1, max_value=20), min_size=1, max_size=4))
    input_data_y_shape = draw(
        st.lists(
            st.integers(
                min_value=1, max_value=20), min_size=1, max_size=4))
    input_data_x_shape = draw(st.sampled_from([input_data_x_shape, []]))
    input_data_y_shape = draw(st.sampled_from([input_data_y_shape, []]))
    axis = draw(st.integers(min_value=-1, max_value=4))
    assume(
        check_broadcast(input_data_x_shape, input_data_y_shape, axis) ==
        True)
    if axis < 0:
        axis = abs(len(input_data_x_shape) - len(
            input_data_y_shape)) + axis + 1
    if self.get_target().upper() == 'X86':
        input_data_type = draw(
            st.sampled_from([np.float32, np.int32, np.int64]))
    elif self.get_target() == 'NNAdapter':
        input_data_type = draw(
            st.sampled_from([np.float32, np.int32, np.int64]))
    elif self.get_target().upper() == 'ARM':
        input_data_type = draw(
            st.sampled_from([np.float32, np.int32, np.int64]))
    elif self.get_target().upper() == 'OPENCL':
        input_data_type = draw(st.sampled_from([np.float32]))
    elif self.get_target().upper() == 'METAL':
        input_data_type = draw(st.sampled_from([np.float32]))
    else:
        input_data_type = draw(st.sampled_from([np.float32]))
    def gen_input_data(*args, **kwargs):
        return np.random.randint(
            1, 20, size=(kwargs['shape'])).astype(kwargs['dtype'])
    elementwise_min_op = OpConfig(
        type="elementwise_min",
        inputs={"X": ["input_data_x"],
                "Y": ["input_data_y"]},
        outputs={"Out": ["output_data"]},
        attrs={"axis": axis})
    program_config = ProgramConfig(
        ops=[elementwise_min_op],
        weights={},
        inputs={
            "input_data_x": TensorConfig(data_gen=partial(
                gen_input_data,
                shape=input_data_x_shape,
                dtype=input_data_type)),
            "input_data_y": TensorConfig(data_gen=partial(
                gen_input_data,
                shape=input_data_y_shape,
                dtype=input_data_type))
        },
        outputs=["output_data"])
    return program_config