from typing import Any
from typing import Dict
from typing import List
from typing import Tuple
from . import assert_results
from . import expected_results
[docs]
def test_mosaic_map_1det_without_qt(tmp_path):
assert_results.assert_without_qt(
"mosaic_map_1det.ows",
get_inputs(tmp_path),
get_expected_outputs(tmp_path),
get_expected_hdf5(tmp_path),
)
[docs]
def test_mosaic_map_1det_with_qt(ewoks_orange_canvas, tmp_path):
assert_results.assert_with_qt(
ewoks_orange_canvas,
"mosaic_map_1det.ows",
get_inputs(tmp_path),
get_expected_outputs(tmp_path),
get_expected_hdf5(tmp_path),
)
[docs]
def get_expected_outputs(tmp_path) -> Dict[str, Dict[str, Any]]:
bliss_scan_uri = str(tmp_path / "concat.h5::/1.1")
output_root_uri = str(tmp_path / "output.h5::/1.1")
return {
"Mosaic mesh (single detector)": {
"config": str(tmp_path / "input.h5::/1.1/theory/configuration/data"),
"detector_name": "mca0",
"detector_normalization_template": "0.1/<instrument/{}/live_time>",
"expo_time": 0.1,
"filenames": [str(tmp_path / "input.h5")],
"monitor_name": "I0",
"monitor_normalization_template": "1000000/<instrument/{}/data>",
"scan_ranges": [(1, 6)],
},
"Pick scans": {
"bliss_scan_uris": [
str(tmp_path / f"input.h5::/{i+1}.1") for i in range(6)
],
},
"Concat BLISS scans": {
"bliss_scan_uri": bliss_scan_uri,
},
"Fit scan (single detector)": {
"bliss_scan_uri": bliss_scan_uri,
"detector_name": "mca0",
"output_root_uri": output_root_uri,
"output_root_group": None,
"xrf_results_uri": str(tmp_path / "output.h5::/1.1/fit/mca0/results"),
},
"Normalize": {
"bliss_scan_uri": bliss_scan_uri,
"output_root_uri": output_root_uri,
"output_root_group": None,
"xrf_results_uri": str(tmp_path / "output.h5::/1.1/norm/results"),
},
"Raw Counters": {
"bliss_scan_uri": bliss_scan_uri,
"output_root_uri": output_root_uri,
"output_root_group": None,
"xrf_results_uri": str(tmp_path / "output.h5::/1.1/merge/results"),
},
"Regrid": {
"bliss_scan_uri": bliss_scan_uri,
"output_root_uri": output_root_uri,
"output_root_group": None,
"xrf_results_uri": str(tmp_path / "output.h5::/1.1/regrid/results"),
},
}
[docs]
def get_expected_hdf5(tmp_path) -> Tuple[str, Dict[str, Any]]:
output_path = tmp_path / "output.h5"
datatype = expected_results.DataType(
nmca=1,
nmcasum=0,
nscans=1,
ndim0=54,
ndim1=64,
mosaic=True,
partial_mca_sum=False,
)
expected = expected_results.build_expected(datatype)
return output_path, expected