import pytest
from ewoksorange.tests.utils import execute_task
from orangecontrib.ewoksfluo.categories.input.pick_scan import OWPickScan
from orangecontrib.ewoksfluo.categories.input.pick_scan_groups import OWPickScanGroups
from orangecontrib.ewoksfluo.categories.input.pick_scans import OWPickScans
[docs]
@pytest.mark.parametrize(
"task_cls", [OWPickScan.ewokstaskclass, OWPickScan], ids=["widget", "task"]
)
def test_pick_scan(task_cls):
result = execute_task(
task_cls,
inputs={"filename": "dataset.h5", "scan_number": 1, "retry_timeout": -1},
)
expected = {"bliss_scan_uri": "dataset.h5::/1.1"}
assert result == expected
[docs]
@pytest.mark.parametrize(
"task_cls", [OWPickScans.ewokstaskclass, OWPickScans], ids=["widget", "task"]
)
def test_pick_scans(task_cls):
result = execute_task(
task_cls,
inputs={
"filenames": ["dataset1.h5", "dataset1.h5"],
"scan_ranges": [(2, 5), (2, 3)],
"retry_timeout": -1,
},
)
expected = {
"bliss_scan_uris": [
"dataset1.h5::/2.1",
"dataset1.h5::/3.1",
"dataset1.h5::/4.1",
"dataset1.h5::/5.1",
"dataset1.h5::/2.1",
"dataset1.h5::/3.1",
],
}
assert result == expected
[docs]
@pytest.mark.parametrize(
"task_cls", [OWPickScans.ewokstaskclass, OWPickScans], ids=["widget", "task"]
)
def test_pick_scans_with_exclude(task_cls):
result = execute_task(
task_cls,
inputs={
"filenames": ["dataset1.h5", "dataset1.h5"],
"scan_ranges": [(2, 5), (2, 3)],
"exclude_scans": [[3], []],
"retry_timeout": -1,
},
)
expected = {
"bliss_scan_uris": [
"dataset1.h5::/2.1",
"dataset1.h5::/4.1",
"dataset1.h5::/5.1",
"dataset1.h5::/2.1",
"dataset1.h5::/3.1",
],
}
assert result == expected
[docs]
@pytest.mark.parametrize(
"task_cls",
[OWPickScanGroups.ewokstaskclass, OWPickScanGroups],
ids=["widget", "task"],
)
def test_pick_scan_groups(task_cls):
result = execute_task(
task_cls,
inputs={
"filenames": [
["dataset1.h5", "dataset2.h5"],
["dataset3.h5", "dataset4.h5"],
],
"scan_ranges": [
[(1, 2), (10, 11)],
[(20, 21), (30, 31)],
],
"retry_timeout": -1,
},
)
expected = {
"bliss_scan_uris": [
[
"dataset1.h5::/1.1",
"dataset1.h5::/2.1",
"dataset2.h5::/10.1",
"dataset2.h5::/11.1",
],
[
"dataset3.h5::/20.1",
"dataset3.h5::/21.1",
"dataset4.h5::/30.1",
"dataset4.h5::/31.1",
],
],
}
assert result == expected
[docs]
@pytest.mark.parametrize(
"task_cls",
[OWPickScanGroups.ewokstaskclass, OWPickScanGroups],
ids=["widget", "task"],
)
def test_pick_scan_groups_with_exclude(task_cls):
result = execute_task(
task_cls,
inputs={
"filenames": [
["dataset1.h5", "dataset2.h5"],
["dataset3.h5", "dataset4.h5"],
],
"scan_ranges": [
[(1, 3), (10, 11)],
[(20, 22), (30, 31)],
],
"exclude_scans": [
[[2], []],
[[21], [30]],
],
"retry_timeout": -1,
},
)
expected = {
"bliss_scan_uris": [
[
"dataset1.h5::/1.1",
"dataset1.h5::/3.1",
"dataset2.h5::/10.1",
"dataset2.h5::/11.1",
],
[
"dataset3.h5::/20.1",
"dataset3.h5::/22.1",
"dataset4.h5::/31.1",
],
],
}
assert result == expected
[docs]
@pytest.mark.parametrize(
"task_cls",
[OWPickScanGroups.ewokstaskclass, OWPickScanGroups],
ids=["widget", "task"],
)
def test_pick_scan_groups_group_by_index_unequal_lengths(task_cls):
result = execute_task(
task_cls,
inputs={
"filenames": [
["dataset1.h5"],
["dataset2.h5"],
],
"scan_ranges": [
[(1, 4)],
[(10, 11)],
],
"group_by_index": True,
"retry_timeout": -1,
},
)
expected = {
"bliss_scan_uris": [
[
"dataset1.h5::/1.1",
"dataset2.h5::/10.1",
],
[
"dataset1.h5::/2.1",
"dataset2.h5::/11.1",
],
[
"dataset1.h5::/3.1",
],
[
"dataset1.h5::/4.1",
],
],
}
assert result == expected