Source code for ewoksndreg.tests.workflow_tests.test_sp_singletransfo

try:
    from importlib.resources import files as resource_files
except ImportError:
    from importlib_resources import files as resource_files

import numpy
from ewokscore import execute_graph
from ewoksorange.bindings import ows_to_ewoks


[docs] def test_sp_single_without_qt(): from ewoksndreg.tests.workflow_tests import workflows filename = resource_files(workflows) / "sp_singletransfo.ows" assert_single_without_qt(filename)
[docs] def test_sp_single_with_qt(ewoks_orange_canvas): from ewoksndreg.tests.workflow_tests import workflows filename = resource_files(workflows) / "sp_singletransfo.ows" assert_single_with_qt(ewoks_orange_canvas, filename)
[docs] def assert_single_without_qt(filename): """Execute workflow after converting it to an ewoks workflow""" graph = ows_to_ewoks(filename) outputs = execute_graph( graph, inputs=[], outputs=[{"all": True}], merge_outputs=False ) id_to_label = { node_id: attrs["label"] for node_id, attrs in graph.graph.nodes.items() } outputs = {id_to_label[k]: v for k, v in outputs.items()} _assert_single(outputs)
[docs] def assert_single_with_qt(ewoks_orange_canvas, filename): """Execute workflow using the Qt widgets and signals""" ewoks_orange_canvas.load_graph(str(filename), inputs=[]) ewoks_orange_canvas.start_workflow() ewoks_orange_canvas.wait_widgets(timeout=60) outputs = dict(ewoks_orange_canvas.iter_output_values()) _assert_single(outputs)
def _assert_single(outputs: dict): best_stack = outputs["Post-Registration Evaluation"]["reference_stack"] best_transformations = outputs["Post-Registration Evaluation"]["transformations"] expected_transformations = outputs["2D Example Stacks"]["transformations"] for best, expected in zip( best_transformations[best_stack], expected_transformations[best_stack] ): numpy.testing.assert_allclose( best.passive_matrix, expected.passive_matrix, rtol=0.1, atol=0.05 ) numpy.testing.assert_allclose( best.active_matrix, expected.active_matrix, rtol=0.1, atol=0.05 ) output_configuration = outputs["Align"]["output_configuration"] expected = { "mapper": "CrossCorrelation-Numpy", "mapper_options": {}, "transformation_type": "translation", "reference_image": 0, "reference_stack": "stack_0", "preprocessing_options": None, "block_size": 1000, "crop": False, "interpolation_order": 0, } assert output_configuration == expected