File: test_collinear_spin.py

package info (click to toggle)
spglib 2.7.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 14,180 kB
  • sloc: ansic: 125,066; python: 7,717; cpp: 2,197; f90: 2,143; ruby: 792; makefile: 22; sh: 18
file content (51 lines) | stat: -rw-r--r-- 1,695 bytes parent folder | download | duplicates (2)
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
import unittest

import numpy as np
from spglib import get_magnetic_symmetry, get_symmetry


class TestGetSymmetry(unittest.TestCase):
    def setUp(self):
        lattice = [[4, 0, 0], [0, 4, 0], [0, 0, 4]]
        positions = [[0, 0, 0], [0.5, 0.5, 0.5]]
        numbers = [1, 1]
        magmoms = [0, 0]
        self._cell = (lattice, positions, numbers, magmoms)

    def tearDown(self):
        pass

    def test_deprecation_warning(self):
        self._cell[3][0] = 1
        self._cell[3][1] = 1
        with self.assertWarns(DeprecationWarning):
            sym = get_symmetry(self._cell)
        self.assertEqual(96, len(sym["rotations"]))
        np.testing.assert_equal(sym["equivalent_atoms"], [0, 0])

    def test_get_symmetry_ferro(self):
        self._cell[3][0] = 1
        self._cell[3][1] = 1
        sym = get_magnetic_symmetry(self._cell)
        self.assertEqual(96, len(sym["rotations"]))
        np.testing.assert_equal(sym["equivalent_atoms"], [0, 0])

    def test_get_symmetry_anti_ferro(self):
        self._cell[3][0] = 1
        self._cell[3][1] = -1
        sym = get_magnetic_symmetry(self._cell)
        self.assertEqual(96, len(sym["rotations"]))
        np.testing.assert_equal(sym["equivalent_atoms"], [0, 0])

    def test_get_symmetry_broken_magmoms(self):
        self._cell[3][0] = 1
        self._cell[3][1] = 2
        sym = get_magnetic_symmetry(self._cell)
        self.assertEqual(48, len(sym["rotations"]))
        np.testing.assert_equal(sym["equivalent_atoms"], [0, 1])


if __name__ == "__main__":
    suite = unittest.TestLoader().loadTestsFromTestCase(TestGetSymmetry)
    unittest.TextTestRunner(verbosity=2).run(suite)
    # unittest.main()