code: def testNeighborAllgather(self):
      for comm in create_topo_comms(self.COMM):
          rsize, ssize = get_neighbors_count(comm)
          for array, typecode in arrayimpl.loop():
              if unittest.is_mpi_gpu("openmpi", array):
                  # segfault as of OpenMPI 4.1.1; TODO(leofang): why?
                  if array.backend == "numba":
                      continue
              for v in range(3):
                  check = arrayimpl.scalar(v)
                  sbuf = array(v, typecode, 3)
                  rbuf = array(-1, typecode, (rsize, 3))
                  comm.Neighbor_allgather(sbuf.as_mpi(), rbuf.as_mpi())
                  for value in rbuf.flat:
                      self.assertEqual(value, check)
                  sbuf = array(v, typecode, 3)
                  rbuf = array(-1, typecode, (rsize, 3))
                  comm.Neighbor_allgatherv(
                      sbuf.as_mpi_c(3), rbuf.as_mpi_c(3)
                  )
                  for value in rbuf.flat:
                      self.assertEqual(value, check)
                  sbuf = array(v, typecode, 3)
                  rbuf = array(-1, typecode, (rsize, 3))
                  comm.Ineighbor_allgather(
                      sbuf.as_mpi(), rbuf.as_mpi()
                  ).Wait()
                  for value in rbuf.flat:
                      self.assertEqual(value, check)
                  sbuf = array(v, typecode, 3)
                  rbuf = array(-1, typecode, (rsize, 3))
                  comm.Ineighbor_allgatherv(
                      sbuf.as_mpi_c(3), rbuf.as_mpi_c(3)
                  ).Wait()
                  for value in rbuf.flat:
                      self.assertEqual(value, check)
          comm.Free()
  
imports: from mpi4py import MPI
  import mpiunittest
  import arrayimpl
label_desc: Use image node_id 1 for calling the BaseTestCCONghBuf obj's underlying member method code with example usage: obj.testNeighborAllgather() without return types