def METHOD_NAME(self, draw):
    N = draw(st.integers(min_value=1, max_value=4))
    C = draw(st.integers(min_value=1, max_value=128))
    H = draw(st.integers(min_value=1, max_value=128))
    W = draw(st.integers(min_value=1, max_value=128))
    in_shape = draw(st.sampled_from([[N, C, H, W], []]))
    in_dtype = draw(st.sampled_from([np.float32, np.int32, np.int64]))
    def generate_X_data():
        return np.random.normal(0.0, 5.0, in_shape).astype(in_dtype)
    axes_data = draw(
        st.lists(
            st.integers(
                min_value=0, max_value=3), min_size=1, max_size=2))
    if in_shape == []:
        axes_data = [0]
    inputs = {"X": ["X_data"]}
    choose_axes = draw(
        st.sampled_from(["axes", "AxesTensor", "AxesTensorList"]))
    def generate_AxesTensor_data():
        if (choose_axes == "AxesTensor"):
            inputs["AxesTensor"] = ["AxesTensor_data"]
            if in_shape == []:
                return np.array([0]).astype(np.int32)
            else:
                return np.array(axes_data).astype(np.int32)
        else:
            return np.random.randint(1, 5, []).astype(np.int32)
    def generate_AxesTensorList_data():
        if (choose_axes == "AxesTensorList"):
            #inputs["AxesTensorList"] = ["AxesTensorList_data"]
            if in_shape == []:
                return np.array([0]).astype(np.int32)
            else:
                return np.array(axes_data).astype(np.int32)
        else:
            return np.random.randint(1, 5, []).astype(np.int32)
    def generate_XShape_data():
        return np.random.random([6]).astype(np.float32)
    unsqueeze2_op = OpConfig(
        type="unsqueeze2",
        inputs=inputs,
        outputs={"Out": ["Out_data"],
                 "XShape": ["XShape_data"]},
        attrs={"axes": axes_data, })
    unsqueeze2_op.outputs_dtype = {"Out_data": in_dtype}
    program_config = ProgramConfig(
        ops=[unsqueeze2_op],
        weights={
            "XShape_data":
            TensorConfig(data_gen=partial(generate_XShape_data))
        },
        inputs={
            "X_data": TensorConfig(data_gen=partial(generate_X_data)),
            "AxesTensor_data":
            TensorConfig(data_gen=partial(generate_AxesTensor_data)),
            "AxesTensorList_data":
            TensorConfig(data_gen=partial(generate_AxesTensorList_data))
        },
        outputs=["Out_data"])
    return program_config