code: def _testGradientsForAxis(
      self, inp_tensors, axis, output_shape, feed_dict=None
  ):
      with self.cached_session():
          c = array_ops.concat(inp_tensors, axis)
          grad_inp = np.random.rand(*output_shape).astype("f")
          grad_tensor = constant_op.constant(
              grad_inp.flatten(), shape=output_shape
          )
          grad = gradients_impl.gradients(
              [c], inp_tensors, [grad_tensor]
          )
          concated_grad = array_ops.concat(grad, axis)
          result = concated_grad.eval(feed_dict=feed_dict)
          self.assertAllEqual(result, grad_inp)
  
imports: import numpy
  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_impl
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gen_array_ops
  from tensorflow.python.ops import gradient_checker
  from tensorflow.python.ops import gradients_impl
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import nn_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import test
label_desc: Use image node_id 36 for calling the ConcatOpTest obj's underlying member method code with example usage: obj._testGradientsForAxis(inp_tensors, axis, output_shape, feed_dict) without return types