Source code for ase2sprkkr.potentials.test.test_structure

if __package__:
   from .init_tests import TestCase, patch_package
else:
   from init_tests import TestCase, patch_package
__package__, __name__ = patch_package(__package__, __name__)

from ..definitions.sections.lattice import LatticeSectionDefinition  # NOQA: E402
from ..definitions.sections.sites import SitesSectionDefinition      # NOQA: E402
from ..potentials import Potential                                   # NOQA: E402
from ..potential_definitions import PotentialDefinition              # NOQA: E402
from ase.build import bulk                                           # NOQA: E402
import io                                                            # NOQA: E402


[docs] class TestStructure(TestCase):
[docs] def test_lattice(self): lsd=LatticeSectionDefinition('LATTICE') ssd=SitesSectionDefinition('SITES') pd=PotentialDefinition('pot', [lsd, ssd]) pot=Potential(definition = pd) sec=pot.LATTICE for e in ['Co', 'Ni', 'U', 'Ge', 'As', 'Na', 'In', 'Pr']: atoms = bulk(e) pot.atoms = atoms cell = atoms.cell s = io.StringIO() pot.save_to_file(s) s.seek(0) out = pd.read_from_file(s) with self.almost_equal_precision(decimal=12): self.assertEqual(out.LATTICE.as_dict(), sec.as_dict()) assert out.atoms is not None new_cell = out.atoms.cell assert new_cell is not None self.assertFalse(cell is new_cell) self.assertEqual(cell * 1, new_cell * 1) self.assertEqual(out.atoms.positions, atoms.positions)