Source code for ewoksfluo.tests.test_norm_utils
import h5py
import numpy
from ..tasks.normalization import norm_utils
[docs]
def test_normalization_coefficient(tmp_path):
live_time = numpy.random.uniform(low=0.08, high=0.1, size=11)
iodet = numpy.random.uniform(low=0.08, high=0.1, size=10)
with h5py.File(str(tmp_path / "dataset.h5"), mode="w") as f:
f["/1.1/instrument/fx_sxm_det0/live_time"] = live_time
f["/1.1/instrument/iodet/data"] = iodet
weight_uri_root = f"{f.filename}::/1.1"
normalization_expression = "0.1/<instrument/fx_sxm_det0/live_time>*np.nanmean(<instrument/iodet/data>)/<instrument/iodet/data>"
expected = numpy.empty((11,), dtype=float)
expected[:10] = 0.1 / live_time[:10] * numpy.mean(iodet[:10]) / iodet[:10]
expected[-1] = numpy.nan
coefficient = norm_utils.normalization_coefficient(
weight_uri_root, normalization_expression
)
numpy.testing.assert_array_equal(expected, coefficient)