code: def test_builder_to_backend_smoke(
      self, compute_unit, backend, x_dtype, indices_dtype
  ):
      x = np.array(
          [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]],
          dtype=x_dtype,
      )
      indices = np.array(
          [[[1, 0], [0, 1]], [[1, 0], [0, 0]]], dtype=indices_dtype
      )
  
      builtin_x_dtype = types.numpy_type_to_builtin_type(x_dtype)
      input_placeholders = {
          "x": mb.placeholder(shape=x.shape, dtype=builtin_x_dtype),
          "indices": mb.placeholder(
              shape=indices.shape,
              dtype=types.numpy_type_to_builtin_type(indices_dtype),
          ),
      }
  
      input_values = {"x": x, "indices": indices}
  
      def build(x, indices):
          return [
              mb.gather(x=x, indices=indices, axis=1, batch_dims=0),
              mb.gather(x=x, indices=indices, axis=1, batch_dims=1),
              mb.gather(x=x, indices=indices, axis=2, batch_dims=0),
              mb.gather(x=x, indices=indices, axis=2, batch_dims=1),
              mb.gather(x=x, indices=indices, axis=2, batch_dims=2),
          ]
  
      expected_output_types = [
          (2, 2, 2, 2, 3, builtin_x_dtype),
          (2, 2, 2, 3, builtin_x_dtype),
          (2, 2, 2, 2, 2, builtin_x_dtype),
          (2, 2, 2, 2, builtin_x_dtype),
          (2, 2, 2, builtin_x_dtype),
      ]
  
      expected_outputs = [
          np.array(
              [
                  [
                      [[[4, 5, 6], [1, 2, 3]], [[1, 2, 3], [4, 5, 6]]],
                      [[[4, 5, 6], [1, 2, 3]], [[1, 2, 3], [1, 2, 3]]],
                  ],
                  [
                      [
                          [[10, 11, 12], [7, 8, 9]],
                          [[7, 8, 9], [10, 11, 12]],
                      ],
                      [
                          [[10, 11, 12], [7, 8, 9]],
                          [[7, 8, 9], [7, 8, 9]],
                      ],
                  ],
              ],
              dtype=x_dtype,
          ),
          np.array(
              [
                  [[[4, 5, 6], [1, 2, 3]], [[1, 2, 3], [4, 5, 6]]],
                  [[[10, 11, 12], [7, 8, 9]], [[7, 8, 9], [7, 8, 9]]],
              ],
              dtype=x_dtype,
          ),
          np.array(
              [
                  [
                      [[[2, 1], [1, 2]], [[2, 1], [1, 1]]],
                      [[[5, 4], [4, 5]], [[5, 4], [4, 4]]],
                  ],
                  [
                      [[[8, 7], [7, 8]], [[8, 7], [7, 7]]],
                      [[[11, 10], [10, 11]], [[11, 10], [10, 10]]],
                  ],
              ],
              dtype=x_dtype,
          ),
          np.array(
              [
                  [[[2, 1], [1, 2]], [[5, 4], [4, 5]]],
                  [[[8, 7], [7, 7]], [[11, 10], [10, 10]]],
              ],
              dtype=x_dtype,
          ),
          np.array(
              [[[2, 1], [4, 5]], [[8, 7], [10, 10]]], dtype=x_dtype
          ),
      ]
  
      run_compare_builder(
          build,
          input_placeholders,
          input_values,
          expected_output_types,
          expected_outputs,
          compute_unit=compute_unit,
          backend=backend,
      )
  
file_path: coremltools/coremltools/converters/mil/mil/ops/tests/iOS16/test_scatter_gather.py
imports: import itertools
  import numpy
  import pytest
  import coremltools
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import types
  from coremltools.converters.mil.mil.ops.tests.iOS14.test_scatter_gather import TestGatherAlongAxis
  from coremltools.converters.mil.mil.ops.tests.iOS16 import backends
  from coremltools.converters.mil.mil.ops.tests.testing_utils import mark_api_breaking, run_compare_builder
  from coremltools.converters.mil.testing_reqs import compute_units
label_desc: Use image node_id 1 for calling the TestGather obj's underlying member method code with example usage: obj.test_builder_to_backend_smoke(compute_unit, backend, x_dtype, indices_dtype) and returns: list