def METHOD_NAME(self, draw):
    in_shape_x = draw(
        st.lists(
            st.integers(
                min_value=1, max_value=20), min_size=2, max_size=5))
    in_shape_y = draw(
        st.lists(
            st.integers(
                min_value=1, max_value=20), min_size=2, max_size=5))
    in_shape_x = draw(st.sampled_from([in_shape_x, []]))
    in_shape_y = draw(st.sampled_from([in_shape_y, []]))
    axis = draw(
        st.integers(
            min_value=-1, max_value=max(len(in_shape_x), len(in_shape_y))))
    assume(
        check_input_shape_available(
            in_shape_x=in_shape_x, in_shape_y=in_shape_y, axis=axis) ==
        True)
    #scale param
    scale = draw(st.floats(min_value=0.5, max_value=5))
    bias = draw(st.floats(min_value=0, max_value=1))
    bias_after_scale = draw(st.sampled_from([False, True]))
    elementwise_op = OpConfig(
        type='elementwise_mul',
        inputs={"X": ["input_data_x"],
                "Y": ["input_data_y"]},
        outputs={"Out": ["elementwise_output_data"]},
        attrs={"data_format": 'nchw',
               "axis": axis})
    scale_op = OpConfig(
        type='scale',
        inputs={"X": ["elementwise_output_data"]},
        outputs={"Out": ["output_data"]},
        attrs={
            "scale": scale,
            "bias": bias,
            "bias_after_scale": bias_after_scale
        })
    ops = [elementwise_op, scale_op]
    program_config = ProgramConfig(
        ops=ops,
        weights={},
        inputs={
            "input_data_x": TensorConfig(shape=in_shape_x),
            "input_data_y": TensorConfig(shape=in_shape_y)
        },
        outputs=["output_data"])
    return program_config