Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions kinisi/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
"""
Tests for kinisi package
"""

# Copyright (c) kinisi developers.
# Distributed under the terms of the MIT License.

from pathlib import Path

TEST_FILE_PATH = Path(__file__).parent / 'inputs'
Comment thread
PythonFZ marked this conversation as resolved.
16 changes: 8 additions & 8 deletions kinisi/tests/test_analyzer.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,19 @@
from ase.io import Trajectory
from pymatgen.io.vasp import Xdatcar

import kinisi
from kinisi.analyzer import Analyzer, _flatten_list
from kinisi.tests import TEST_FILE_PATH

file_path = os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_XDATCAR.gz')
file_path = TEST_FILE_PATH / 'example_XDATCAR.gz'
xd = Xdatcar(file_path)
da_params = {'specie': 'Li', 'time_step': 2.0 * sc.Unit('ps'), 'step_skip': 50 * sc.Unit('dimensionless')}
md = mda.Universe(
os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_LAMMPS.data'),
os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_LAMMPS.dcd'),
TEST_FILE_PATH / 'example_LAMMPS.data',
TEST_FILE_PATH / 'example_LAMMPS.dcd',
format='LAMMPS',
)
db_params = {'specie': '1', 'time_step': 0.005 * sc.Unit('ps'), 'step_skip': 250 * sc.Unit('dimensionless')}
ase_file_path = os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_ase.traj')
ase_file_path = TEST_FILE_PATH / 'example_ase.traj'
traj = Trajectory(ase_file_path, 'r')
dc_params = {'specie': 'Li', 'time_step': 1.0 * 1e-3 * sc.Unit('fs'), 'step_skip': 1 * sc.Unit('dimensionless')}

Expand All @@ -37,7 +37,7 @@ class TestAnalyzer(unittest.TestCase):
"""

def test_to_hdf5(self):
xd = Xdatcar(os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_XDATCAR.gz'))
xd = Xdatcar(TEST_FILE_PATH / 'example_XDATCAR.gz')
da_params = {'specie': 'Li', 'time_step': 2.0 * sc.Unit('fs'), 'step_skip': 50 * sc.Unit('dimensionless')}
analyzer = Analyzer._from_xdatcar(xd, **da_params)
test_file = 'test_save.h5'
Expand All @@ -47,12 +47,12 @@ def test_to_hdf5(self):
assert file_exists

def test_load_hdf5(self):
test_file = os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_Analyzer.h5')
test_file = TEST_FILE_PATH / 'example_Analyzer.h5'
analyzer = Analyzer.from_hdf5(test_file)
assert type(analyzer) is Analyzer

def test_round_trip_hdf5(self):
xd = Xdatcar(os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_XDATCAR.gz'))
xd = Xdatcar(TEST_FILE_PATH / 'example_XDATCAR.gz')
da_params = {'specie': 'Li', 'time_step': 2.0 * sc.Unit('fs'), 'step_skip': 50 * sc.Unit('dimensionless')}
analyzer = Analyzer._from_xdatcar(xd, **da_params)
test_file = 'test_save.h5'
Expand Down
5 changes: 2 additions & 3 deletions kinisi/tests/test_ase.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,15 @@
# Distributed under the terms of the MIT License.
# author: Oskar G. Soulas (osoulas)

import os
import unittest

import numpy as np
import scipp as sc
from ase.io import Trajectory

import kinisi
from kinisi import parser
from kinisi.ase import ASEParser
from kinisi.tests import TEST_FILE_PATH


class TestASEParser(unittest.TestCase):
Expand All @@ -24,7 +23,7 @@ class TestASEParser(unittest.TestCase):
"""

def test_ase_datagroup_round_trip(self):
traj = Trajectory(os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_ase.traj'))
traj = Trajectory(TEST_FILE_PATH / 'example_ase.traj')
da_params = {'specie': 'Li', 'time_step': 1e-3 * sc.Unit('fs'), 'step_skip': 1 * sc.Unit('dimensionless')}
data = ASEParser(traj, **da_params)
datagroup = data._to_datagroup()
Expand Down
14 changes: 7 additions & 7 deletions kinisi/tests/test_conductivity_analyzer.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,22 @@
from pymatgen.io.vasp import Xdatcar
from scipp.testing import assert_allclose

import kinisi
from kinisi.analyze import ConductivityAnalyzer
from kinisi.analyzer import Analyzer
from kinisi.samples import Samples
from kinisi.tests import TEST_FILE_PATH

file_path = os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_XDATCAR.gz')
file_path = TEST_FILE_PATH / 'example_XDATCAR.gz'
xd = Xdatcar(file_path)
da_params = {'specie': 'Li', 'time_step': 2.0 * sc.Unit('ps'), 'step_skip': 50 * sc.Unit('dimensionless')}

ase_file_path = os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_ase.traj')
ase_file_path = TEST_FILE_PATH / 'example_ase.traj'
traj = Trajectory(ase_file_path, 'r')
ase_params = {'specie': 'Li', 'time_step': 1.0 * 1e-3 * sc.Unit('fs'), 'step_skip': 1 * sc.Unit('dimensionless')}

mda_universe = mda.Universe(
os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_LAMMPS.data'),
os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_LAMMPS.dcd'),
TEST_FILE_PATH / 'example_LAMMPS.data',
TEST_FILE_PATH / 'example_LAMMPS.dcd',
format='LAMMPS',
)
mda_params = {'specie': '1', 'time_step': 0.005 * sc.Unit('fs'), 'step_skip': 250 * sc.Unit('dimensionless')}
Expand All @@ -53,14 +53,14 @@ def test_to_hdf5(cls):
assert file_exists

def test_load_hdf(cls):
test_file = os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_DiffusionAnalyzer.h5')
test_file = TEST_FILE_PATH / 'example_DiffusionAnalyzer.h5'
analyzer = ConductivityAnalyzer.from_hdf5(test_file)
analyzer_2 = Analyzer.from_hdf5(test_file)
assert analyzer.trajectory._to_datagroup() == analyzer_2.trajectory._to_datagroup()
assert type(analyzer) is type(analyzer_2)

def test_round_trip_hdf5(self):
xd = Xdatcar(os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_XDATCAR.gz'))
xd = Xdatcar(TEST_FILE_PATH / 'example_XDATCAR.gz')
da_params = {'specie': 'Li', 'time_step': 2.0 * sc.Unit('fs'), 'step_skip': 50 * sc.Unit('dimensionless')}
analyzer = ConductivityAnalyzer._from_xdatcar(xd, **da_params)
test_file = 'test_save.h5'
Expand Down
15 changes: 4 additions & 11 deletions kinisi/tests/test_diffusion.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,14 @@
# Distributed under the terms of the MIT License.
# @author: Andrew R. McCluskey (arm61) & Harry Richardson (Harry-Rich)

import os
import unittest

import numpy as np
import pytest
import scipp as sc

import kinisi
from kinisi.diffusion import Diffusion, _straight_line, minimum_eigenvalue_method
from kinisi.tests import TEST_FILE_PATH

# Random seed setting not yet implemented into bayesian regression and so cannot almost_equal

Expand All @@ -41,9 +40,7 @@ def test_straight_line(self):
class TestDiffusion(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.msd_load = sc.io.load_hdf5(
filename=os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_msd2.hdf5')
)['_dg']
cls.msd_load = sc.io.load_hdf5(filename=TEST_FILE_PATH / 'example_msd2.hdf5')['_dg']
cls.RNG = np.random.RandomState(42)
cls.diff = Diffusion(dg=cls.msd_load)

Expand Down Expand Up @@ -79,9 +76,7 @@ def test__jump_diffusion(self):
assert self.diff.D_J.to_unit('cm2/s').unit == sc.Unit('cm2/s')

def test__conductivity(self):
msd_load = sc.io.load_hdf5(
filename=os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_msd2.hdf5')
)['_dg']
msd_load = sc.io.load_hdf5(filename=TEST_FILE_PATH / 'example_msd2.hdf5')['_dg']
diff_cond = Diffusion(dg=msd_load)
diff_cond.dg['da'] = diff_cond.dg['da'] * sc.scalar(1.0, unit=sc.Unit('coulomb2'))
start_dt = 300 * sc.Unit('femtosecond')
Expand Down Expand Up @@ -126,9 +121,7 @@ def test_posterior_predictive(self):
custom_samp2 = self.diff.posterior_predictive(n_posterior_samples=1, n_predictive_samples=400, progress=False)
assert custom_samp2.dims == ('samples', 'time interval')

msd_load = sc.io.load_hdf5(
filename=os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_msd2.hdf5')
)['_dg']
msd_load = sc.io.load_hdf5(filename=TEST_FILE_PATH / 'example_msd2.hdf5')['_dg']
diff_exc = Diffusion(dg=msd_load)
diff_exc.dg['da'] = diff_exc.dg['da'] * sc.scalar(1.0, unit=sc.Unit('watts'))

Expand Down
6 changes: 3 additions & 3 deletions kinisi/tests/test_diffusion_analyzer.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
from pymatgen.io.vasp import Xdatcar
from scipp.testing import assert_allclose

import kinisi
from kinisi.analyze import DiffusionAnalyzer
from kinisi.analyzer import Analyzer
from kinisi.samples import Samples
from kinisi.tests import TEST_FILE_PATH

xd = Xdatcar(os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_XDATCAR.gz'))
xd = Xdatcar(TEST_FILE_PATH / 'example_XDATCAR.gz')
da_params = {'specie': 'Li', 'time_step': 2.0 * sc.Unit('fs'), 'step_skip': 50 * sc.Unit('dimensionless')}


Expand All @@ -38,7 +38,7 @@ def test_to_hdf5(cls):
assert file_exists

def test_load_hdf(cls):
test_file = os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_DiffusionAnalyzer.h5')
test_file = TEST_FILE_PATH / 'example_DiffusionAnalyzer.h5'
analyzer = DiffusionAnalyzer.from_hdf5(test_file)
analyzer_2 = Analyzer.from_hdf5(test_file)
assert analyzer.trajectory._to_datagroup() == analyzer_2.trajectory._to_datagroup()
Expand Down
8 changes: 4 additions & 4 deletions kinisi/tests/test_jump_diffusion_analyzer.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@
from pymatgen.io.vasp import Xdatcar
from scipp.testing import assert_allclose

import kinisi
from kinisi.analyze import JumpDiffusionAnalyzer
from kinisi.analyzer import Analyzer
from kinisi.samples import Samples
from kinisi.tests import TEST_FILE_PATH

file_path = os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_XDATCAR.gz')
file_path = TEST_FILE_PATH / 'example_XDATCAR.gz'
xd = Xdatcar(file_path)
ase_traj = [AseAtomsAdaptor.get_atoms(struct) for struct in xd.structures]
da_params = {'specie': 'Li', 'time_step': 2.0 * sc.Unit('ps'), 'step_skip': 50 * sc.Unit('dimensionless')}
Expand All @@ -41,14 +41,14 @@ def test_to_hdf5(cls):
assert file_exists

def test_load_hdf(cls):
test_file = os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_DiffusionAnalyzer.h5')
test_file = TEST_FILE_PATH / 'example_DiffusionAnalyzer.h5'
analyzer = JumpDiffusionAnalyzer.from_hdf5(test_file)
analyzer_2 = Analyzer.from_hdf5(test_file)
assert analyzer.trajectory._to_datagroup() == analyzer_2.trajectory._to_datagroup()
assert type(analyzer) is type(analyzer_2)

def test_round_trip_hdf5(self):
xd = Xdatcar(os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_XDATCAR.gz'))
xd = Xdatcar(TEST_FILE_PATH / 'example_XDATCAR.gz')
da_params = {'specie': 'Li', 'time_step': 2.0 * sc.Unit('fs'), 'step_skip': 50 * sc.Unit('dimensionless')}
analyzer = JumpDiffusionAnalyzer._from_xdatcar(xd, **da_params)
test_file = 'test_save.h5'
Expand Down
15 changes: 7 additions & 8 deletions kinisi/tests/test_mdanalysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
# Distributed under the terms of the MIT License.
# author: Oskar G. Soulas (osoulas)

import os
import unittest

import MDAnalysis as mda
Expand All @@ -15,9 +14,9 @@
from numpy.testing import assert_almost_equal
from scipp.testing.assertions import assert_allclose, assert_identical

import kinisi
from kinisi import parser
from kinisi.mdanalysis import MDAnalysisParser
from kinisi.tests import TEST_FILE_PATH


class TestMDAnalysisParser(unittest.TestCase):
Expand All @@ -27,8 +26,8 @@ class TestMDAnalysisParser(unittest.TestCase):

def test_mdanalysis_datagroup_round_trip(self):
xd = mda.Universe(
os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_LAMMPS.data'),
os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_LAMMPS.dcd'),
TEST_FILE_PATH / 'example_LAMMPS.data',
TEST_FILE_PATH / 'example_LAMMPS.dcd',
format='LAMMPS',
)
da_params = {'specie': '1', 'time_step': 0.005 * sc.Unit('fs'), 'step_skip': 250 * sc.Unit('dimensionless')}
Expand All @@ -43,8 +42,8 @@ def test_mdanalysis_datagroup_round_trip(self):

def test_mda_init(self):
xd = mda.Universe(
os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_LAMMPS.data'),
os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_LAMMPS.dcd'),
TEST_FILE_PATH / 'example_LAMMPS.data',
TEST_FILE_PATH / 'example_LAMMPS.dcd',
format='LAMMPS',
)
da_params = {'specie': '1', 'time_step': 0.005, 'step_skip': 250}
Expand All @@ -57,8 +56,8 @@ def test_mda_init(self):

def test_mda_init_with_indices(self):
xd = mda.Universe(
os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_LAMMPS.data'),
os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_LAMMPS.dcd'),
TEST_FILE_PATH / 'example_LAMMPS.data',
TEST_FILE_PATH / 'example_LAMMPS.dcd',
format='LAMMPS',
)
specie_indices = sc.array(dims=['particle'], values=[208, 212], unit=sc.units.dimensionless)
Expand Down
5 changes: 2 additions & 3 deletions kinisi/tests/test_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
# author: Andrew R. McCluskey (arm61), Josh Dunn (jd15489) & Oskar G. Soulas (osoulas)
# pylint: disable=R0201

import os
import unittest

import MDAnalysis as mda
Expand All @@ -16,8 +15,8 @@
import scipp as sc
from numpy.testing import assert_almost_equal, assert_equal

import kinisi
from kinisi import parser
from kinisi.tests import TEST_FILE_PATH


class mda_universe_generator:
Expand Down Expand Up @@ -208,7 +207,7 @@ def test_non_orthorhombic_calculate_displacements(self):
assert_almost_equal(disp.values, test_disp.values)


dg = sc.io.load_hdf5(os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_drift.h5'))
dg = sc.io.load_hdf5(TEST_FILE_PATH / 'example_drift.h5')
coords = dg['coords']
latt = dg['latt']
time_step = dg['time_step']
Expand Down
5 changes: 2 additions & 3 deletions kinisi/tests/test_pymatgen.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,15 @@
# Distributed under the terms of the MIT License.
# author: Oskar G. Soulas (osoulas)

import os
import unittest

import numpy as np
import scipp as sc
from pymatgen.io.vasp import Xdatcar

import kinisi
from kinisi import parser
from kinisi.pymatgen import PymatgenParser
from kinisi.tests import TEST_FILE_PATH


class TestPymatgenParser(unittest.TestCase):
Expand All @@ -24,7 +23,7 @@ class TestPymatgenParser(unittest.TestCase):
"""

def test_pymatgen_datagroup_round_trip(self):
xd = Xdatcar(os.path.join(os.path.dirname(kinisi.__file__), 'tests/inputs/example_XDATCAR.gz'))
xd = Xdatcar(TEST_FILE_PATH / 'example_XDATCAR.gz')
da_params = {'specie': 'Li', 'time_step': 2.0 * sc.Unit('fs'), 'step_skip': 50 * sc.Unit('dimensionless')}
data = PymatgenParser(xd.structures, **da_params)
datagroup = data._to_datagroup()
Expand Down