Skip to content
Snippets Groups Projects

Base knife-edge scan analysis implementation

Merged Cammille Carinan requested to merge knife-edge-base into master
1 unresolved thread
2 files
+ 43
30
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -86,9 +86,9 @@ def test_prepare_arrays_size():
assert intensities.shape == (size,)
# Test finite motor and 1D signals
positions, intensities = prepare_arrays(motor, signal.reshape(1, -1))
assert positions.shape == (size,)
assert intensities.shape == (size,)
positions, intensities = prepare_arrays(motor, signal[:, 0])
assert positions.shape == (trains,)
assert intensities.shape == (trains,)
def test_knife_edge_base():
@@ -96,14 +96,14 @@ def test_knife_edge_base():
x = np.linspace(-3, 3)
y = erfc(x, *p0)
noise = y * np.random.normal(0, .02, y.shape) # 2% error
eff_y = (y + noise).reshape(1, -1)
eff_y = y + noise
# Test noisy data
popt, _ = knife_edge_base(x, eff_y)
np.testing.assert_allclose(p0, popt, atol=1e-1)
# Test flipped data
popt, _ = knife_edge_base(x, eff_y[:, ::-1])
popt, _ = knife_edge_base(x, eff_y[::-1])
p0[1] = abs(p0[1]) # Absolute value when flipped
np.testing.assert_allclose(p0, popt, atol=1e-1)
Loading