1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
from mpi4py import MPI
import mpiunittest as unittest
class BaseTestFortran(object):
HANDLES = []
def testFortran(self):
for handle1 in self.HANDLES:
try:
fint = handle1.py2f()
except NotImplementedError:
continue
handle2 = type(handle1).f2py(fint)
self.assertEqual(handle1, handle2)
class TestFortranDatatype(BaseTestFortran, unittest.TestCase):
HANDLES = [MPI.DATATYPE_NULL,
MPI.CHAR, MPI.SHORT,
MPI.INT, MPI.LONG,
MPI.FLOAT, MPI.DOUBLE,
]
class TestFortranOp(BaseTestFortran, unittest.TestCase):
HANDLES = [MPI.OP_NULL,
MPI.MAX, MPI.MIN,
MPI.SUM, MPI.PROD,
MPI.LAND, MPI.BAND,
MPI.LOR, MPI.BOR,
MPI.LXOR, MPI.BXOR,
MPI.MAXLOC, MPI.MINLOC,
]
class TestFortranRequest(BaseTestFortran, unittest.TestCase):
HANDLES = [MPI.REQUEST_NULL,
]
class TestFortranMessage(BaseTestFortran, unittest.TestCase):
HANDLES = [MPI.MESSAGE_NULL,
MPI.MESSAGE_NO_PROC,
]
class TestFortranErrhandler(BaseTestFortran, unittest.TestCase):
HANDLES = [MPI.ERRHANDLER_NULL,
MPI.ERRORS_RETURN,
MPI.ERRORS_ARE_FATAL,
]
class TestFortranInfo(BaseTestFortran, unittest.TestCase):
HANDLES = [MPI.INFO_NULL,
]
class TestFortranGroup(BaseTestFortran, unittest.TestCase):
HANDLES = [MPI.GROUP_NULL,
MPI.GROUP_EMPTY,
]
class TestFortranComm(BaseTestFortran, unittest.TestCase):
HANDLES = [MPI.COMM_NULL,
MPI.COMM_SELF,
MPI.COMM_WORLD,
]
class TestFortranWin(BaseTestFortran, unittest.TestCase):
HANDLES = [MPI.WIN_NULL,
]
class TestFortranFile(BaseTestFortran, unittest.TestCase):
HANDLES = [MPI.FILE_NULL,
]
if __name__ == '__main__':
unittest.main()
|