code: def testISSendAndRecv(self):
      size = self.COMM.Get_size()
      rank = self.COMM.Get_rank()
      for smess in messages:
          req = self.COMM.issend(smess, MPI.PROC_NULL)
          self.assertTrue(req)
          req.Wait()
          self.assertFalse(req)
          rmess = self.COMM.recv(None, MPI.PROC_NULL, 0)
          self.assertIsNone(rmess)
      for smess in messages:
          req = self.COMM.issend(smess, rank, 0)
          self.assertTrue(req)
          flag = req.Test()
          self.assertFalse(flag)
          self.assertTrue(req)
          rmess = self.COMM.recv(None, rank, 0)
          self.assertTrue(req)
          flag = False
          while not flag:
              flag = req.Test()
          self.assertTrue(flag)
          self.assertFalse(req)
          self.assertEqual(rmess, smess)
      for smess in messages:
          dst = (rank + 1) % size
          src = (rank - 1) % size
          req = self.COMM.issend(smess, dst, 0)
          self.assertTrue(req)
          rmess = self.COMM.recv(None, src, 0)
          req.Wait()
          self.assertFalse(req)
          self.assertEqual(rmess, smess)
  
imports: from mpi4py import MPI
  import mpiunittest
  import threading
  import warnings
  import sys
label_desc: Use image node_id 8 for calling the BaseTestP2PObj obj's underlying member method code with example usage: obj.testISSendAndRecv() without return types