Source code for est.tests.widgets.test_energyroi
from ewokscore.missing_data import is_missing_data
from orangecontrib.est.widgets.utils.energyroi import EnergyRoiOW
from est.core.types.xasobject import XASObject
from .utils import wait_task_executed
[docs]
def test_energy_roi_widget_behavior(qtapp, spectrum_cu_from_pymca):
"Check behavior ifof the nergy roi widget"
# create Xas obj
energy = spectrum_cu_from_pymca.energy
mu = spectrum_cu_from_pymca.mu
xas_obj = XASObject(
spectra=mu.reshape(mu.shape[0], 1, 1),
energy=energy,
)
new_energy_roi = (8700, 9500)
assert energy.min() < new_energy_roi[0]
assert energy.max() > new_energy_roi[1]
widget = EnergyRoiOW()
widget.update_default_inputs(xas_obj=xas_obj)
widget.task_input_changed()
widget.loadSettings(
energy_roi={"minE": new_energy_roi[0], "maxE": new_energy_roi[1]}
)
while qtapp.hasPendingEvents():
qtapp.processEvents()
# insure xas_obj is not propagated and the widget is set up
assert is_missing_data(widget.get_task_output_value("xas_obj"))
assert widget._widget.getXasObject() is not None
assert widget._widget.getROI() == new_energy_roi
# check behavior once validated
widget.validate()
wait_task_executed(qtapp, widget)
xas_obj = widget.get_task_output_value("xas_obj")
assert not is_missing_data(xas_obj)
assert xas_obj.energy.min() >= new_energy_roi[0]
assert xas_obj.energy.max() <= new_energy_roi[1]