def METHOD_NAME(self, draw):
    N = draw(st.integers(min_value=1, max_value=4))
    C = draw(st.integers(min_value=1, max_value=10))
    H = draw(st.integers(min_value=1, max_value=10))
    W = draw(st.integers(min_value=1, max_value=10))
    in_shape = draw(st.sampled_from([[N, C, H, W], [N, 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)
    repeat_times_data = draw(
        st.lists(
            st.integers(
                min_value=1, max_value=5), min_size=1, max_size=4))
    choose_repeat = draw(
        st.sampled_from(
            ["RepeatTimes", "repeat_times_tensor", "repeat_times"]))
    inputs = {"X": ["X_data"]}
    def generate_RepeatTimes_data():
        if (choose_repeat == "RepeatTimes"):
            inputs["RepeatTimes"] = ["RepeatTimes_data"]
            return np.array(repeat_times_data).astype(np.int32)
        else:
            return np.random.randint(1, 5, []).astype(np.int32)
    repeat_times_len = len(repeat_times_data)
    # repeat_times_tensor having repeat_times_len inputs!
    def generate_repeat_times_tensor_data(i):
        inputs["repeat_times_tensor"] = [
            "repeat_times_tensor_data" + str(i)
            for i in range(repeat_times_len)
        ]
        if (choose_repeat == "repeat_times_tensor"):
            return np.array([repeat_times_data[i]]).astype(np.int32)
        else:
            return np.random.randint(1, 5, []).astype(np.int32)
    tile_op = OpConfig(
        type="tile",
        inputs=inputs,
        outputs={"Out": ["Out_data"]},
        attrs={"repeat_times": repeat_times_data})
    program_input = {
        "X_data": TensorConfig(data_gen=partial(generate_X_data)),
        "RepeatTimes_data":
        TensorConfig(data_gen=partial(generate_RepeatTimes_data))
    }
    for i in range(repeat_times_len):
        program_input["repeat_times_tensor_data" + str(i)] = TensorConfig(
            data_gen=partial(generate_repeat_times_tensor_data, i))
    program_config = ProgramConfig(
        ops=[tile_op],
        weights={},
        inputs=program_input,
        outputs=["Out_data"])
    return program_config