Source code for ewoksdata.tests.test_data_bliss
import numpy
import h5py
from fabio.edfimage import edfimage
import pytest
from ..data import bliss
[docs]def test_get_data_edf(tmpdir):
filename = str(tmpdir / "data.edf")
img1 = numpy.random.uniform(((10, 12)))
edf = edfimage(data=img1)
edf.write(filename)
img2 = bliss.get_data(filename)
numpy.testing.assert_array_equal(img1, img2)
[docs]def test_get_data_hdf5(tmpdir):
filename = str(tmpdir / "data.h5")
img1 = numpy.random.uniform(((10, 12)))
with h5py.File(filename, "w") as f:
f["img"] = img1
img2 = bliss.get_data(f"{filename}::/img")
numpy.testing.assert_array_equal(img1, img2)
img3 = bliss.get_data(f"{filename}?path=/img")
numpy.testing.assert_array_equal(img1, img3)
[docs]@pytest.mark.parametrize("lima_names", [(), ("p3",), ("p3", "p4")])
@pytest.mark.parametrize("counter_names", [(), ("diode1",), ("diode1", "diode2")])
def test_iter_bliss_data(lima_names, counter_names, bliss_scan):
nexpected = len(lima_names) + len(counter_names)
index = None
for index, data in bliss.iter_bliss_data(
str(bliss_scan), 2, lima_names=lima_names, counter_names=counter_names
):
assert len(data) == nexpected
if "diode1" in counter_names:
assert data["diode1"] == index
if "diode2" in counter_names:
assert data["diode2"] == index
if "p3" in counter_names:
assert (data["p3"] == index).all()
if "p4" in counter_names:
assert (data["p4"] == index).all()
if nexpected:
assert index == 30
else:
assert index is None