code: def testReverse(self):
      batch_size = 10
      input_shape = [batch_size, 2, 3, 4, 5]
      expected_output_shape = [batch_size, 2, 3 * 4, 5]
  
      inputs = tf.random.normal(input_shape)
      mod = reshape.Reshape(output_shape=[2, -1, 5])
      output = mod(inputs)
      self.assertEqual(output.shape, expected_output_shape)
  
      mod_r = mod.reversed()
      output_r = mod_r(output)
      self.assertEqual(output_r.shape, input_shape)
  
      mod_r_r = mod_r.reversed()
      output_r_r = mod_r_r(output)
      self.assertEqual(output_r_r.shape, expected_output_shape)
  
      input_np, output_r_np = self.evaluate([inputs, output_r])
      self.assertAllClose(output_r_np, input_np)
  
imports: from absl.testing import parameterized
  import numpy
  from sonnet.src import reshape
  from sonnet.src import test_utils
  import tensorflow
label_desc: Use image node_id 10 for calling the ReshapeTest obj's underlying member method code with example usage: obj.testReverse() without return types