def testPickle5(self): comm = self.COMM rank = comm.Get_rank() pickle = self.pickle protocols = list(range(-2, pickle.PROTOCOL + 1)) for protocol in [None] + protocols: pickle.PROTOCOL = protocol for threshold in (-1, 0, 64, 256): pickle.THRESHOLD = threshold for slen in (0, 32, 64, 128, 256, 512): sobj = numpy.empty(slen, dtype='i') sobj.fill(rank) # robj = comm.sendrecv(sobj, rank, 42, None, rank, 42) self.assertTrue(numpy.all(sobj == robj)) # data, bufs = pickle.dumps(sobj) robj = pickle.loads(data, bufs) self.assertTrue(numpy.all(sobj == robj)) if protocol is None: protocol = MPI.Pickle().PROTOCOL if protocol < 0: protocol = pkl5._PROTOCOL if protocol >= 5 and sobj.nbytes >= threshold: self.assertEqual(len(bufs), 1) else: self.assertEqual(len(bufs), 0)