diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index fc2023b..c73ebb6 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -43,7 +43,7 @@ jobs: conda config --add channels conda-forge conda activate test conda install --file requirements/requirements.txt - conda install pytest coverage codecov + conda install --file requirements/requirements-dev.txt pip install . - name: Validate diffpy.labpdfproc diff --git a/requirements/requirements-dev.txt b/requirements/requirements-dev.txt index 3b388e1..c601d11 100644 --- a/requirements/requirements-dev.txt +++ b/requirements/requirements-dev.txt @@ -9,6 +9,7 @@ nbstripout pre-commit pre-commit-hooks pytest +pytest-mock sphinx twine # These are dependencies of various sphinx extensions for documentation. diff --git a/src/diffpy/labpdfproc/functions.py b/src/diffpy/labpdfproc/functions.py index 494be9b..30f833d 100644 --- a/src/diffpy/labpdfproc/functions.py +++ b/src/diffpy/labpdfproc/functions.py @@ -197,7 +197,7 @@ def compute_cve(diffraction_data, mud, wavelength): """ mu_sample_invmm = mud / 2 - abs_correction = Gridded_circle(mu=mu_sample_invmm) + abs_correction = Gridded_circle(n_points_on_diameter=N_POINTS_ON_DIAMETER, mu=mu_sample_invmm) distances, muls = [], [] for angle in TTH_GRID: abs_correction.set_distances_at_angle(angle) diff --git a/src/diffpy/labpdfproc/tests/test_functions.py b/src/diffpy/labpdfproc/tests/test_functions.py index c51baf3..f969c83 100644 --- a/src/diffpy/labpdfproc/tests/test_functions.py +++ b/src/diffpy/labpdfproc/tests/test_functions.py @@ -1,6 +1,8 @@ +import numpy as np import pytest -from diffpy.labpdfproc.functions import Gridded_circle +from diffpy.labpdfproc.functions import Gridded_circle, compute_cve +from diffpy.utils.scattering_objects.diffraction_objects import Diffraction_object params1 = [ ([0.5, 3, 1], {(0.0, -0.5), (0.0, 0.0), (0.5, 0.0), (-0.5, 0.0), (0.0, 0.5)}), @@ -52,3 +54,29 @@ def test_set_muls_at_angle(inputs, expected): actual_muls_sorted = sorted(actual_gs.muls) expected_muls_sorted = sorted(expected_muls) assert actual_muls_sorted == pytest.approx(expected_muls_sorted, rel=1e-4, abs=1e-6) + + +def test_compute_cve(mocker): + mocker.patch("diffpy.labpdfproc.functions.N_POINTS_ON_DIAMETER", 4) + mocker.patch("diffpy.labpdfproc.functions.TTH_GRID", np.array([45, 60, 90])) + input_pattern = Diffraction_object(wavelength=1.54) + input_pattern.insert_scattering_quantity( + np.array([45, 60, 90]), + np.array([2.2, 3, 4]), + "tth", + scat_quantity="x-ray", + name="test", + metadata={"thing1": 1, "thing2": "thing2"}, + ) + actual_abdo = compute_cve(input_pattern, mud=1, wavelength=1.54) + expected_abdo = Diffraction_object() + expected_abdo.insert_scattering_quantity( + np.array([45, 60, 90]), + np.array([2.54253, 2.52852, 2.49717]), + "tth", + metadata={"thing1": 1, "thing2": "thing2"}, + name="absorption correction, cve, for test", + wavelength=1.54, + scat_quantity="cve", + ) + assert actual_abdo == expected_abdo