docstr: Test with different batch shapes.
code: def test_convert_to_block_diag_2d_batch_shapes(self):
      """Test with different batch shapes."""
      sizes_one_batch_dim = np.concatenate(
          [
              np.random.randint(low=1, high=h, size=(6 * 3 * 4, 1))
              for h in (5, 7)
          ],
          axis=-1,
      )
      data = [np.random.uniform(size=s) for s in sizes_one_batch_dim]
      data_one_batch_dim_padded = np.zeros(shape=(6 * 3 * 4, 5, 7))
      for i, s in enumerate(sizes_one_batch_dim):
          data_one_batch_dim_padded[i, : s[0], : s[1]] = data[i]
      data_many_batch_dim_padded = np.reshape(
          data_one_batch_dim_padded, (6, 3, 4, 5, 7)
      )
      sizes_many_batch_dim = np.reshape(
          sizes_one_batch_dim, (6, 3, 4, -1)
      )
  
      data_one_sparse = _dense_to_sparse(data_one_batch_dim_padded)
      data_many_sparse = _dense_to_sparse(data_many_batch_dim_padded)
      one_batch_dim = utils.convert_to_block_diag_2d(
          data_one_sparse, sizes_one_batch_dim
      )
      many_batch_dim = utils.convert_to_block_diag_2d(
          data_many_sparse, sizes_many_batch_dim
      )
  
      self.assertAllEqual(
          tf.sparse.to_dense(one_batch_dim),
          tf.sparse.to_dense(many_batch_dim),
      )
      self._validate_sizes(one_batch_dim, sizes_one_batch_dim)
  
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 9 for calling the UtilsConvertToBlockDiag2dTests obj's underlying member method code with example usage: obj.test_convert_to_block_diag_2d_batch_shapes() without return types