def METHOD_NAME(self, draw):
    in_shape = draw(
        st.lists(
            st.integers(
                min_value=1, max_value=10), min_size=1, max_size=4))
    tensor_shape = draw(
        st.lists(
            st.integers(
                min_value=1, max_value=10), min_size=1, max_size=4))
    in_shape = draw(st.sampled_from([in_shape, []]))
    dtype = draw(st.sampled_from([2, 3, 5]))
    with_value_tensor = draw(st.sampled_from([True, False]))
    with_shape_tensor = draw(st.sampled_from([True, False]))
    if "nvidia_tensorrt" in self.get_nnadapter_device_name(
    ) or "intel_openvino" in self.get_nnadapter_device_name():
        with_shape_tensor = False
    # nvidia_tensorrt now just supports shape is from attr
    def generate_shape_tensor(*args, **kwargs):
        return np.array(tensor_shape).astype(np.int32)
    def generate_input(*args, **kwargs):
        if kwargs["type"] == "int32":
            return np.random.randint(kwargs["low"], kwargs["high"],
                                     kwargs["shape"]).astype(np.int32)
        elif kwargs["type"] == "int64":
            return np.random.randint(kwargs["low"], kwargs["high"],
                                     kwargs["shape"]).astype(np.int64)
        elif kwargs["type"] == "float32":
            return (kwargs["high"] - kwargs["low"]) * np.random.random(
                kwargs["shape"]).astype(np.float32) + kwargs["low"]
    if dtype == 2:
        input_type = "int32"
    elif dtype == 3:
        input_type = "int64"
    else:
        input_type = "float32"
    value = draw(st.floats(min_value=-10, max_value=10))
    op_inputs = {}
    program_inputs = {}
    #ShapeTensorList not support now 
    if (with_value_tensor and with_shape_tensor):
        op_inputs = {
            "ValueTensor": ["value_data"],
            "ShapeTensor": ["shape_data"]
        }
        program_inputs = {
            "value_data": TensorConfig(data_gen=partial(
                generate_input,
                type=input_type,
                low=-10,
                high=10,
                shape=[1])),
            "shape_data":
            TensorConfig(data_gen=partial(generate_shape_tensor))
        }
    elif ((not with_value_tensor) and with_shape_tensor):
        op_inputs = {"ShapeTensor": ["shape_data"]}
        program_inputs = {
            "shape_data":
            TensorConfig(data_gen=partial(generate_shape_tensor))
        }
    elif (with_value_tensor and (not with_shape_tensor)):
        op_inputs = {"ValueTensor": ["value_data"]}
        program_inputs = {
            "value_data": TensorConfig(data_gen=partial(
                generate_input,
                type=input_type,
                low=-10,
                high=10,
                shape=[1]))
        }
    fill_constant_op = OpConfig(
        type="fill_constant",
        inputs=op_inputs,
        outputs={"Out": ["output_data"]},
        attrs={
            "dtype": dtype,
            "shape": in_shape,
            "value": value,
            "force_cpu": False
        })
    program_config = ProgramConfig(
        ops=[fill_constant_op],
        weights={},
        inputs=program_inputs,
        outputs=["output_data"])
    return program_config