code: def _gather_same_shape_and_verify(
      self, value_on_replica, axis, pure_eager, strategy
  ):
      distributed_values = (
          strategy.experimental_distribute_values_from_function(
              lambda _: array_ops.identity(value_on_replica)
          )
      )
  
      def run():
          return strategy.gather(distributed_values, axis=axis)
  
      if not pure_eager:
          run = def_function.function(run)
  
      all_results = [
          value_on_replica for _ in range(strategy.num_replicas_in_sync)
      ]
      expected_result = array_ops.concat(all_results, axis=axis)
      self.assertAllEqual(expected_result, run().numpy())
  
imports: from absl.testing import parameterized
  from tensorflow.python.data.ops import dataset_ops
  from tensorflow.python.distribute import central_storage_strategy
  from tensorflow.python.distribute import combinations
  from tensorflow.python.distribute import distribute_lib
  from tensorflow.python.distribute import mirrored_strategy
  from tensorflow.python.distribute import strategy_combinations
  from tensorflow.python.distribute import test_util
  from tensorflow.python.distribute import tpu_strategy
  from tensorflow.python.distribute.collective_all_reduce_strategy import CollectiveAllReduceStrategy
  from tensorflow.python.eager import def_function
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import indexed_slices
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gradients_impl
  from tensorflow.python.platform import test
  from tensorflow.python.util import nest
label_desc: Use image node_id 1 for calling the GatherTest obj's underlying member method code with example usage: obj._gather_same_shape_and_verify(value_on_replica, axis, pure_eager, strategy) and returns: strategy