code: def _verifyLuBase(
      self, x, lower, upper, perm, verification, output_idx_type
  ):
      lower_np, upper_np, perm_np, verification_np = self.evaluate(
          [lower, upper, perm, verification]
      )
  
      self.assertAllClose(x, verification_np)
      self.assertShapeEqual(x, lower)
      self.assertShapeEqual(x, upper)
  
      self.assertAllEqual(x.shape[:-1], perm.shape.as_list())
  
      # Check dtypes are as expected.
      self.assertEqual(x.dtype, lower_np.dtype)
      self.assertEqual(x.dtype, upper_np.dtype)
      self.assertEqual(output_idx_type.as_numpy_dtype, perm_np.dtype)
  
      # Check that the permutation is valid.
      if perm_np.shape[-1] > 0:
          perm_reshaped = np.reshape(perm_np, (-1, perm_np.shape[-1]))
          for perm_vector in perm_reshaped:
              self.assertAllClose(
                  np.arange(len(perm_vector)), np.sort(perm_vector)
              )
  
imports: import numpy
  from tensorflow.python.client import session
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors
  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 array_ops_stack
  from tensorflow.python.ops import control_flow_ops
  from tensorflow.python.ops import linalg_ops
  from tensorflow.python.ops import map_fn
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import stateless_random_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import benchmark
  from tensorflow.python.platform import test
label_desc: Use image node_id 2 for calling the LuOpTest obj's underlying member method code with example usage: obj._verifyLuBase(x, lower, upper, perm, verification, output_idx_type) without return types