def METHOD_NAME(self, draw):
    in_shape = draw(
        st.lists(
            st.integers(
                min_value=4, max_value=8), min_size=3, max_size=4))
    value0 = draw(st.integers(min_value=0, max_value=in_shape[0] - 1))
    value1 = draw(st.integers(min_value=0, max_value=in_shape[1] - 1))
    value2 = draw(st.integers(min_value=0, max_value=in_shape[2] - 1))
    index = draw(
        st.sampled_from([[value0], [value0, value1],
                         [value0, value1, value2]]))
    index_type = draw(st.sampled_from(["int32", "int64"]))
    test_0d = draw(st.sampled_from([False, True]))
    if test_0d == True:
        in_shape = draw(st.integers(min_value=2, max_value=20))
        index = [1]
    def generate_index(*args, **kwargs):
        if index_type == "int32":
            return np.array(index).astype(np.int32)
        else:
            return np.array(index).astype(np.int64)
    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 np.random.random(kwargs["shape"]).astype(np.float32)
    input_type = draw(st.sampled_from(["float32", "int64", "int32"]))
    op_inputs = {"X": ["input_data"], "Index": ["index_data"]}
    program_inputs = {
        "input_data": TensorConfig(data_gen=partial(
            generate_input,
            type=input_type,
            low=-10,
            high=10,
            shape=in_shape)),
        "index_data": TensorConfig(data_gen=partial(generate_index))
    }
    gather_nd_op = OpConfig(
        type="gather_nd",
        inputs=op_inputs,
        outputs={"Out": ["output_data"]},
        attrs={"axis": 1})
    if input_type == "int64":
        gather_nd_op.outputs_dtype = {"output_data": np.int64}
    elif input_type == "int32":
        gather_nd_op.outputs_dtype = {"output_data": np.int32}
    program_config = ProgramConfig(
        ops=[gather_nd_op],
        weights={},
        inputs=program_inputs,
        outputs=["output_data"])
    return program_config