From eb80a82e05104c299c4b509ad86383498077480c Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 23 Nov 2019 18:58:44 +0100 Subject: [PATCH] first idea how to test pointwise operations --- python/tests/test_DADF5.py | 67 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 python/tests/test_DADF5.py diff --git a/python/tests/test_DADF5.py b/python/tests/test_DADF5.py new file mode 100644 index 000000000..6dbd5bef7 --- /dev/null +++ b/python/tests/test_DADF5.py @@ -0,0 +1,67 @@ +import shutil +import os + +import pytest +import numpy as np + +from damask import DADF5 +from damask import mechanics + +@pytest.fixture +def default(tmp_path,reference_dir): + """Small DADF5 file for testing.""" + fname = '12grains6x7x8_tensionY.hdf5' + shutil.copy(os.path.join(reference_dir,fname),tmp_path) + f = DADF5(os.path.join(tmp_path,fname)) + f.set_by_time(20.0,20.0) + return f + +@pytest.fixture +def reference_dir(reference_dir_base): + """directory containing reference results.""" + return os.path.join(reference_dir_base,'DADF5') + + +class TestDADF5: + + def test_add_deviator(self,default): + default.add_deviator('P') + loc = {'P' :default.get_dataset_location('P'), + 's_P':default.get_dataset_location('s_P')} + in_memory = mechanics.deviatoric_part(default.read_dataset(loc['P'],0)) + in_file = default.read_dataset(loc['s_P'],0) + assert np.allclose(in_memory,in_file) + + def test_add_Cauchy(self,default): + default.add_Cauchy('P','F') + loc = {'F': default.get_dataset_location('F'), + 'P': default.get_dataset_location('P'), + 'sigma':default.get_dataset_location('sigma')} + in_memory = mechanics.Cauchy(default.read_dataset(loc['F'],0), + default.read_dataset(loc['P'],0)) + in_file = default.read_dataset(loc['sigma'],0) + assert np.allclose(in_memory,in_file) + + def test_add_absolute(self,default): + default.add_absolute('Fe') + loc = {'Fe': default.get_dataset_location('Fe'), + '|Fe|': default.get_dataset_location('|Fe|')} + in_memory = np.abs(default.read_dataset(loc['Fe'],0)) + in_file = default.read_dataset(loc['|Fe|'],0) + assert np.allclose(in_memory,in_file) + + def test_add_determinant(self,default): + default.add_determinant('Lp') + loc = {'Lp': default.get_dataset_location('Lp'), + 'det(Lp)': default.get_dataset_location('det(Lp)')} + in_memory = np.linalg.det(default.read_dataset(loc['Lp'],0)) + in_file = default.read_dataset(loc['det(Lp)'],0) + assert np.allclose(in_memory,in_file) + + def test_add_spherical(self,default): + default.add_spherical('P') + loc = {'P': default.get_dataset_location('P'), + 'p_P': default.get_dataset_location('p_P')} + in_memory = mechanics.spherical_part(default.read_dataset(loc['P'],0)) + in_file = default.read_dataset(loc['p_P'],0) + assert np.allclose(in_memory,in_file)