code: def _testGradient(self, np_input, shift, axis):
      with self.cached_session():
          inx = constant_op.constant(np_input.tolist())
          xs = list(np_input.shape)
          y = manip_ops.roll(inx, shift, axis)
          # Expected y's shape to be the same
          ys = xs
          jacob_t, jacob_n = gradient_checker.compute_gradient(
              inx, xs, y, ys, x_init_value=np_input
          )
          self.assertAllClose(jacob_t, jacob_n, rtol=1e-5, atol=1e-5)
  
imports: import numpy
  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 test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gradient_checker
  from tensorflow.python.ops import manip_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 2 for calling the RollTest obj's underlying member method code with example usage: obj._testGradient(np_input, shift, axis) without return types