code: def testScatter(self):
      size = self.COMM.Get_size()
      rank = self.COMM.Get_rank()
      for array, typecode in arrayimpl.loop():
          for root in range(size):
              check = arrayimpl.scalar(root)
              for count in range(1, 10):
                  if rank == root:
                      buf = array(root, typecode, (size, count))
                      sbuf = buf.as_mpi()
                      rbuf = MPI.IN_PLACE
                  else:
                      buf = array(-1, typecode, count)
                      sbuf = None
                      rbuf = buf.as_mpi()
                  self.COMM.Scatter(sbuf, rbuf, root=root)
                  for value in buf.flat:
                      self.assertEqual(value, check)
                  if rank == root:
                      rbuf = None
                  self.COMM.Scatter(sbuf, rbuf, root=root)
                  for value in buf.flat:
                      self.assertEqual(value, check)
  
imports: from mpi4py import MPI
  import mpiunittest
  import arrayimpl
  from functools import reduce
label_desc: Use image node_id 2 for calling the BaseTestCCOBufInplace obj's underlying member method code with example usage: obj.testScatter() without return types