docstr: Test the jacobian is correct with random inputs.
code: def test_convert_to_block_diag_2d_jacobian_random(self):
      """Test the jacobian is correct with random inputs."""
      sizes = np.random.randint(low=2, high=6, size=(3, 2))
      data = [np.random.uniform(size=s) for s in sizes]
      batch_data_padded = np.zeros(
          shape=np.concatenate(
              [[len(sizes)], np.max(sizes, axis=0)], axis=0
          )
      )
      for i, s in enumerate(sizes):
          batch_data_padded[i, : s[0], : s[1]] = data[i]
      sparse_ind = np.where(batch_data_padded)
      sparse_val_init = batch_data_padded[sparse_ind]
  
      def convert_to_block_diag_2d(sparse_val):
          sparse = tf.SparseTensor(
              np.stack(sparse_ind, axis=-1),
              sparse_val,
              batch_data_padded.shape,
          )
          return utils.convert_to_block_diag_2d(sparse, sizes).values
  
      self.assert_jacobian_is_correct_fn(
          convert_to_block_diag_2d, [sparse_val_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 10 for calling the UtilsConvertToBlockDiag2dTests obj's underlying member method code with example usage: obj.test_convert_to_block_diag_2d_jacobian_random() and returns: utils