code: def testProbeRecv(self):
      comm = self.COMM
      size = comm.Get_size()
      rank = comm.Get_rank()
      for array, typecode in arrayimpl.loop():
          with arrayimpl.test(self):
              for s in range(0, size + 1):
                  with self.subTest(s=s):
                      sbuf = array(s, typecode, s)
                      rbuf = array(-1, typecode, s)
                      if size == 1:
                          n = comm.Improbe(0, 0)
                          self.assertIsNone(n)
                          sr = comm.Isend(sbuf.as_mpi(), 0, 0)
                          m = comm.Mprobe(0, 0)
                          self.assertIsInstance(m, MPI.Message)
                          self.assertTrue(m)
                          rr = m.Irecv(rbuf.as_raw())
                          self.assertFalse(m)
                          self.assertTrue(sr)
                          self.assertTrue(rr)
                          MPI.Request.Waitall([sr, rr])
                          self.assertFalse(sr)
                          self.assertFalse(rr)
                          #
                          n = comm.Improbe(0, 0)
                          self.assertIsNone(n)
                          r = comm.Isend(sbuf.as_mpi(), 0, 0)
                          m = MPI.Message.Probe(comm, 0, 0)
                          self.assertIsInstance(m, MPI.Message)
                          self.assertTrue(m)
                          m.Recv(rbuf.as_raw())
                          self.assertFalse(m)
                          r.Wait()
                          #
                          n = MPI.Message.Iprobe(comm, 0, 0)
                          self.assertIsNone(n)
                          r = comm.Isend(sbuf.as_mpi(), 0, 0)
                          comm.Probe(0, 0)
                          m = MPI.Message.Iprobe(comm, 0, 0)
                          self.assertIsInstance(m, MPI.Message)
                          self.assertTrue(m)
                          m.Recv(rbuf.as_raw())
                          self.assertFalse(m)
                          r.Wait()
                          #
                          n = MPI.Message.Iprobe(comm, 0, 0)
                          self.assertIsNone(n)
                          r = comm.Isend(sbuf.as_mpi(), 0, 0)
                          m = comm.Mprobe(0, 0)
                          self.assertIsInstance(m, MPI.Message)
                          self.assertTrue(m)
                          m.Recv(rbuf.as_raw())
                          self.assertFalse(m)
                          r.Wait()
                      elif rank == 0:
                          n = comm.Improbe(0, 0)
                          self.assertIsNone(n)
                          #
                          comm.Send(sbuf.as_mpi(), 1, 0)
                          m = comm.Mprobe(1, 0)
                          self.assertTrue(m)
                          m.Recv(rbuf.as_raw())
                          self.assertFalse(m)
                          #
                          n = comm.Improbe(0, 0)
                          self.assertIsNone(n)
                          comm.Send(sbuf.as_mpi(), 1, 1)
                          m = None
                          while not m:
                              m = comm.Improbe(1, 1)
                          m.Irecv(rbuf.as_raw()).Wait()
                      elif rank == 1:
                          n = comm.Improbe(1, 0)
                          self.assertIsNone(n)
                          #
                          m = comm.Mprobe(0, 0)
                          self.assertTrue(m)
                          m.Recv(rbuf.as_raw())
                          self.assertFalse(m)
                          #
                          n = comm.Improbe(1, 0)
                          self.assertIsNone(n)
                          comm.Send(sbuf.as_mpi(), 0, 0)
                          m = None
                          while not m:
                              m = comm.Improbe(0, 1)
                          m.Irecv(rbuf.as_mpi()).Wait()
                          comm.Send(sbuf.as_mpi(), 0, 1)
                      else:
                          rbuf = sbuf
                      check = arrayimpl.scalar(s)
                      for value in rbuf:
                          self.assertEqual(value, check)
  
imports: from mpi4py import MPI
  import mpiunittest
  import arrayimpl
label_desc: Use image node_id 2 for calling the BaseTestP2PMatched obj's underlying member method code with example usage: obj.testProbeRecv() without return types