From e1bfbef92a0fd7747d4513ac04dd929a4b30e0f9 Mon Sep 17 00:00:00 2001 From: yucongalicechen Date: Fri, 27 Dec 2024 19:01:25 -0500 Subject: [PATCH 1/2] rename x to dz, decrease error range for tests --- src/diffpy/labpdfproc/mud_calculator.py | 14 +++++++------- tests/test_mud_calculator.py | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/diffpy/labpdfproc/mud_calculator.py b/src/diffpy/labpdfproc/mud_calculator.py index 20bc88f..604d167 100644 --- a/src/diffpy/labpdfproc/mud_calculator.py +++ b/src/diffpy/labpdfproc/mud_calculator.py @@ -15,19 +15,19 @@ def _top_hat(z, half_slit_width): def _model_function(z, diameter, z0, I0, mud, slope): """ Compute the model function with the following steps: - 1. Recenter z to x by subtracting z0 (so that the circle is centered at 0 and it is easier to compute length l) + 1. Let dz = z-z0, so that dz is centered at 0 2. Compute length l that is the effective length for computing intensity I = I0 * e^{-mu * l}: - - For x within the diameter range, l is the chord length of the circle at position x - - For x outside this range, l = 0 + - For dz within the capillary diameter, l is the chord length of the circle at position dz + - For dz outside this range, l = 0 3. Apply a linear adjustment to I0 by taking I0 as I0 - slope * z """ min_radius = -diameter / 2 max_radius = diameter / 2 - x = z - z0 + dz = z - z0 length = np.piecewise( - x, - [x < min_radius, (min_radius <= x) & (x <= max_radius), x > max_radius], - [0, lambda x: 2 * np.sqrt((diameter / 2) ** 2 - x**2), 0], + dz, + [dz < min_radius, (min_radius <= dz) & (dz <= max_radius), dz > max_radius], + [0, lambda dz: 2 * np.sqrt((diameter / 2) ** 2 - dz**2), 0], ) return (I0 - slope * z) * np.exp(-mud / diameter * length) diff --git a/tests/test_mud_calculator.py b/tests/test_mud_calculator.py index b74585e..551adb5 100644 --- a/tests/test_mud_calculator.py +++ b/tests/test_mud_calculator.py @@ -19,4 +19,4 @@ def test_compute_mud(tmp_path): expected_mud = 3 actual_mud = compute_mud(file) - assert actual_mud == pytest.approx(expected_mud, rel=0.01, abs=0.1) + assert actual_mud == pytest.approx(expected_mud, rel=1e-4, abs=1e-3) From 11d2ccd883ab19e1edd2eff01eec3da0f7e73d3f Mon Sep 17 00:00:00 2001 From: yucongalicechen Date: Fri, 27 Dec 2024 19:12:18 -0500 Subject: [PATCH 2/2] no news added --- news/muD2.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 news/muD2.rst diff --git a/news/muD2.rst b/news/muD2.rst new file mode 100644 index 0000000..617eb2b --- /dev/null +++ b/news/muD2.rst @@ -0,0 +1,23 @@ +**Added:** + +* no news added - rename variables in `mud_calculator.py` and edit tests + +**Changed:** + +* + +**Deprecated:** + +* + +**Removed:** + +* + +**Fixed:** + +* + +**Security:** + +*