code: def testSplitTypeShared(self):
      try:
          MPI.COMM_SELF.Split_type(MPI.COMM_TYPE_SHARED).Free()
      except NotImplementedError:
          self.skipTest("mpi-comm-split_type")
      comm = self.COMM.Split_type(MPI.UNDEFINED)
      self.assertEqual(comm, MPI.COMM_NULL)
      comm = self.COMM.Split_type(MPI.COMM_TYPE_SHARED)
      self.assertNotEqual(comm, MPI.COMM_NULL)
      size = self.COMM.Get_size()
      rank = self.COMM.Get_rank()
      if size == 1:
          self.assertEqual(comm.size, 1)
          self.assertEqual(comm.rank, 0)
      comm.Free()
      for root in range(size):
          if rank == root:
              split_type = MPI.COMM_TYPE_SHARED
          else:
              split_type = MPI.UNDEFINED
          comm = self.COMM.Split_type(split_type)
          if rank == root:
              self.assertNotEqual(comm, MPI.COMM_NULL)
              self.assertEqual(comm.size, 1)
              self.assertEqual(comm.rank, 0)
              comm.Free()
          else:
              self.assertEqual(comm, MPI.COMM_NULL)
  
imports: from mpi4py import MPI
  import mpiunittest
label_desc: Use image node_id 18 for calling the BaseTestComm obj's underlying member method code with example usage: obj.testSplitTypeShared() without return types