xref: /petsc/src/binding/petsc4py/test/test_sys.py (revision 552edb6364df478b294b3111f33a8f37ca096b20)
1import unittest
2from petsc4py import PETSc
3
4# --------------------------------------------------------------------
5
6
7class TestVersion(unittest.TestCase):
8    def testGetVersion(self):
9        version = PETSc.Sys.getVersion()
10        self.assertTrue(version > (0, 0, 0))
11        v, date = PETSc.Sys.getVersion(date=True)
12        self.assertTrue(version == v)
13        self.assertTrue(isinstance(date, str))
14        v, author = PETSc.Sys.getVersion(author=True)
15        self.assertTrue(version == v)
16        self.assertTrue(isinstance(author, (list, tuple)))
17
18    def testGetVersionInfo(self):
19        version = PETSc.Sys.getVersion()
20        info = PETSc.Sys.getVersionInfo()
21        self.assertEqual(
22            version,
23            (
24                info['major'],
25                info['minor'],
26                info['subminor'],
27            ),
28        )
29        self.assertTrue(isinstance(info['release'], bool))
30        v, date = PETSc.Sys.getVersion(date=True)
31        self.assertEqual(date, info['date'])
32
33    def testGetSetDefaultComm(self):
34        c = PETSc.Sys.getDefaultComm()
35        self.assertEqual(c, PETSc.COMM_WORLD)
36        PETSc.Sys.setDefaultComm(PETSc.COMM_SELF)
37        c = PETSc.Sys.getDefaultComm()
38        self.assertEqual(c, PETSc.COMM_SELF)
39        PETSc.Sys.setDefaultComm(PETSc.COMM_WORLD)
40        c = PETSc.Sys.getDefaultComm()
41        self.assertEqual(c, PETSc.COMM_WORLD)
42        f = lambda: PETSc.Sys.setDefaultComm(PETSc.COMM_NULL)
43        self.assertRaises(ValueError, f)
44
45
46# --------------------------------------------------------------------
47
48if __name__ == '__main__':
49    unittest.main()
50
51# --------------------------------------------------------------------
52