def METHOD_NAME(self, draw):
    alpha = draw(st.floats(min_value=1, max_value=1))
    x_num_col_dims = draw(st.integers(min_value=1, max_value=1))
    y_num_col_dims = draw(st.integers(min_value=1, max_value=1))
    n_int32 = draw(st.integers(min_value=1, max_value=64))
    c_int32 = draw(st.integers(min_value=1, max_value=64))
    matmul_y_w = draw(st.integers(min_value=1, max_value=64))
    dim2_values_h = draw(st.integers(min_value=1, max_value=64))
    dim2_values_w = draw(st.integers(min_value=1, max_value=64))
    assume(dim2_values_h * dim2_values_w == n_int32 * c_int32)
    dim4_values = [n_int32, c_int32, 1, 1]
    dim2_values = [dim2_values_h, dim2_values_w]
    matmul_y_shape = [dim2_values_w, matmul_y_w]
    reshape2_op = OpConfig(
        type="reshape2",
        inputs={"X": ["input_data_x"]},
        outputs={
            "Out": ["reshape2_output"],
            "XShape": ["reshape2_output_XShape"]
        },
        attrs={
            "shape": dim2_values  #compare input_data_x->shape
        })
    matmul_op = OpConfig(
        type="matmul",
        inputs={"X": ["reshape2_output"],
                "Y": ["input_data_y"]},
        outputs={"Out": ["output_data"]},
        attrs={
            "transpose_X": False,
            "transpose_Y": False,
            "x_num_col_dims": x_num_col_dims,
            "y_num_col_dims": y_num_col_dims,
            "alpha": alpha,
            "fused_reshape_X": [],
            "fused_transpose_X": [],
            "fused_reshape_Y": [],
            "fused_transpose_Y": [],
            "fused_reshape_Out": [],
            "fused_transpose_Out": [],
            "head_number": int(1)
        })
    ops = [reshape2_op, matmul_op]
    program_config = ProgramConfig(
        ops=ops,
        weights={},
        inputs={
            "input_data_x": TensorConfig(shape=dim4_values),
            "input_data_y": TensorConfig(shape=matmul_y_shape)
        },
        outputs=["output_data"])
    return program_config