Source code for ase2sprkkr.bindings.tests.test_spglib

from ase.build import bulk

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

from ..spglib import spglib_dataset  # NOQA: E402
from ...sprkkr.sprkkr_atoms import SPRKKRAtoms  # NOQA: E402
from ...common.unique_values import UniqueValuesMapping  # NOQA: E402


[docs] class TestSpgilib(TestCase):
[docs] def test_spglib_dataset(self): def ssert(mapping, out): self.assertTrue(UniqueValuesMapping(out.equivalent_atoms).is_equivalent_to(mapping)) atoms = bulk('NaCl', "rocksalt", a=5.64) ssert([0,1], spglib_dataset(atoms)) ssert([0,0], spglib_dataset(atoms, atomic_numbers=[4,4])) atoms = bulk('NaNa', "rocksalt", a=5.64) ssert([0,0], spglib_dataset(atoms)) ssert([0,1], spglib_dataset(atoms, atomic_numbers=[4,7])) atoms = bulk('NaCl', "rocksalt", a=5.64) SPRKKRAtoms.promote_ase_atoms(atoms) atoms.sites ssert([0,1], spglib_dataset(atoms)) atoms.sites[1].occupation = {'Na':1.0} ssert([0,1], spglib_dataset(atoms, consider_old=True)) # repeat the test to be sure ssert([0,1], spglib_dataset(atoms, consider_old=True)) ssert([0,0], spglib_dataset(atoms, consider_old=False))