code: def max_unpool1d_helper(
      draw,
      **data_gen_kwargs,
  ):
      dts, values, kernel_size, strides, _ = draw(
          helpers.arrays_for_pooling(
              min_dims=3,
              max_dims=3,
              data_format="channel_first",
              **data_gen_kwargs,
          )
      )
      dts.extend(["int64"])
      values = values[0]
      if dts[0] in ["float16", "bfloat16"]:
          values = values.astype(np.float32)
          dts[0] = "float32"
      padding = draw(helpers.ints(min_value=0, max_value=2))
      if padding > (kernel_size[0] // 2):
          padding = 0
  
      values, indices = torch.nn.functional.max_pool1d(
          torch.tensor(values.astype(np.float32)),
          kernel_size,
          strides,
          padding,
          return_indices=True,
      )
      indices = indices.numpy().astype(np.int64)
      max_idx = values.shape[-1] - 1
      indices = np.where(indices > max_idx, max_idx, indices)
      values = values.numpy().astype(dts[0])
      return dts, values, indices, kernel_size, strides, padding
  
imports: import numpy
  import torch
  from hypothesis import strategies, assume
  import ivy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_test, BackendHandler
label_desc: Use image node_id 13 for calling a global function with example usage: max_unpool1d_helper(draw) and returns: dts,  values,  indices,  kernel_size,  strides,  padding