code: def testHalf(self):
      done = True
      size = MPI.COMM_WORLD.Get_size()
      rank = MPI.COMM_WORLD.Get_rank()
      world_group = MPI.COMM_WORLD.Get_group()
      low_group = world_group.Range_incl([(0, size // 2 - 1, 1)])
      high_group = world_group.Range_incl([(size // 2, size - 1, 1)])
      world_group.Free()
      if rank <= size // 2 - 1:
          local_group, remote_group = low_group, high_group
          local_leader, remote_leader = 0, high_group.Get_size() - 1
      else:
          local_group, remote_group = high_group, low_group
          local_leader, remote_leader = high_group.Get_size() - 1, 0
      try:
          comm = MPI.Intercomm.Create_from_groups(
              local_group,
              local_leader,
              remote_group,
              remote_leader,
          )
          self.assertEqual(comm.Get_rank(), local_group.Get_rank())
          self.assertEqual(comm.Get_size(), local_group.Get_size())
          self.assertEqual(
              comm.Get_remote_size(), remote_group.Get_size()
          )
          comm.Free()
      except NotImplementedError:
          done = False
      finally:
          local_group.Free()
          remote_group.Free()
      if not done:
          self.assertLess(MPI.VERSION, 4)
          self.skipTest("mpi-intercomm-create_from_groups")
  
imports: from mpi4py import MPI
  import mpiunittest
label_desc: Use image node_id 2 for calling the TestIntercommCreateFromGroups obj's underlying member method code with example usage: obj.testHalf() without return types