code: def test_reversible_permute(self):
      layer = sparsity.ReversibleReshapePermute()
      x = np.array([[1, 2, 3, 4, 5, 6, 7, 8], [0, 1, 2, 3, 4, 5, 6, 7]])
      layer.init(shapes.signature(x))
      ys = layer(x)
      self.assertEqual(
          tl.to_list(ys),
          [[1, 3, 5, 7, 2, 4, 6, 8], [0, 2, 4, 6, 1, 3, 5, 7]],
      )
      rev_x = layer.reverse(ys, weights=layer.weights)
      self.assertEqual(tl.to_list(x), tl.to_list(rev_x))
  
imports: import functools
  from absl.testing import parameterized
  import jax
  import numpy
  from tensorflow import test
  from trax import fastmath
  from trax import shapes
  import trax.layers
  from trax.layers import test_utils
  from trax.layers.research import sparsity
label_desc: Use image node_id 1 for calling the ReversibleReshapePermuteTest obj's underlying member method code with example usage: obj.test_reversible_permute() without return types