File: test_magnetism.py

package info (click to toggle)
python-emmet-core 0.84.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 77,220 kB
  • sloc: python: 16,355; makefile: 30
file content (26 lines) | stat: -rw-r--r-- 968 bytes parent folder | download
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
import pytest
from emmet.core.magnetism import MagnetismDoc
from emmet.core.utils import jsanitize
from monty.serialization import loadfn
from pymatgen.core import Structure


def test_magnetism_doc(test_dir):
    test_orderings = {"mp-1034331": "FM", "mp-753472": "NM"}

    for material in loadfn(test_dir / "magnetism/magnetism_mats_sample.json"):
        structure = Structure.from_dict(jsanitize(material["structure"]))
        total_magnetization = material["magnetism"]["total_magnetization"]
        material_id = material["task_id"]

        doc = MagnetismDoc.from_structure(
            structure=structure,
            material_id=material_id,
            total_magnetization=total_magnetization,
            deprecated=False,
        )
        assert doc is not None
        assert doc.total_magnetization == pytest.approx(abs(total_magnetization))

        if material_id in test_orderings:
            assert doc.ordering == test_orderings[material_id]