docstr: Test the jacobian is correct for random inputs.
code: def test_flatten_batch_to_2d_jacobian_random(self):
      """Test the jacobian is correct for random inputs."""
      data_init = np.random.uniform(size=(3, 2, 7, 5, 4))
      sizes = np.random.randint(low=1, high=5, size=(3, 2, 7))
      flat_init = np.random.uniform(size=(np.sum(sizes), 10))
  
      def flatten_batch_to_2d(data):
          flattened, _ = utils.flatten_batch_to_2d(data, sizes=sizes)
          return flattened
  
      def unflatten_2d_to_batch(flat):
          _, unflatten = utils.flatten_batch_to_2d(
              data_init, sizes=sizes
          )
          return unflatten(flat)
  
      with self.subTest(name="flatten"):
          self.assert_jacobian_is_correct_fn(
              flatten_batch_to_2d, [data_init]
          )
  
      with self.subTest(name="unflatten"):
          self.assert_jacobian_is_correct_fn(
              unflatten_2d_to_batch, [flat_init]
          )
  
imports: from absl.testing import parameterized
  import numpy
  from scipy import linalg
  import tensorflow
  from tensorflow_graphics.geometry.convolution import utils
  from tensorflow_graphics.util import test_case
label_desc: Use image node_id 8 for calling the UtilsFlattenBatchTo2dTests obj's underlying member method code with example usage: obj.test_flatten_batch_to_2d_jacobian_random() and returns: flattened, unflatten