code: def test_create_contiguous_submeshes_errors(self):
      v4 = mesh_utils._TPU_V4
  
      topology = (4, 4, 8)
      mesh_shape = (1, 16, 8)
      devices = mock_tpu_devices(
          topology[0],
          topology[1],
          topology[2],
          v4,
          one_device_per_chip=True,
      )
      with self.assertRaisesWithLiteralMatch(
          ValueError,
          "create_device_mesh cannot create contiguous submeshes for "
          "physical mesh topology (4, 4, 8)",
      ):
          mesh_utils.create_device_mesh(
              mesh_shape, devices=devices, contiguous_submeshes=True
          )
  
      topology = (4, 8, 8)
      mesh_shape = (1, 128, 2)
      devices = mock_tpu_devices(
          topology[0],
          topology[1],
          topology[2],
          v4,
          one_device_per_chip=True,
      )
      with self.assertRaisesWithLiteralMatch(
          ValueError,
          "create_device_mesh cannot create contiguous submeshes for mesh_shape "
          "(1, 128, 2) and physical mesh topology (4, 8, 8). "
          "Available mesh_shapes: [(64, 4), (4, 64)]",
      ):
          mesh_utils.create_device_mesh(
              mesh_shape, devices=devices, contiguous_submeshes=True
          )
  
imports: import collections
  from collections.abc import Sequence
  import dataclasses
  import numpy
  from absl import logging
  from absl.testing import absltest
  from absl.testing import parameterized
  from jax.experimental import mesh_utils
  from jax.sharding import Mesh
  from jax._src import test_util
label_desc: Use image node_id 10 for calling the MeshUtilsTest obj's underlying member method code with example usage: obj.test_create_contiguous_submeshes_errors() without return types