def test_update_multiecho_name(): """Unit testing for heudiconv.convert.update_multiecho_name(), which updates filenames with the echo field if appropriate. """ # Standard name update fn = 'sub-X_ses-Y_task-Z_run-01_bold' metadata = {'EchoTime': 0.01, 'EchoNumber': 1} echo_times = [0.01, 0.02, 0.03] out_fn_true = 'sub-X_ses-Y_task-Z_run-01_echo-1_bold' out_fn_test = update_multiecho_name(metadata, fn, echo_times) assert out_fn_test == out_fn_true # EchoNumber field is missing from metadata, so use echo_times metadata = {'EchoTime': 0.01} out_fn_test = update_multiecho_name(metadata, fn, echo_times) assert out_fn_test == out_fn_true # Catch an unsupported type and *do not* update fn = 'sub-X_ses-Y_task-Z_run-01_phasediff' out_fn_test = update_multiecho_name(metadata, fn, echo_times) assert out_fn_test == fn
def test_update_multiecho_name(): """Unit testing for heudiconv.convert.update_multiecho_name(), which updates filenames with the echo field if appropriate. """ # Standard name update base_fn = 'sub-X_ses-Y_task-Z_run-01_bold' metadata = {'EchoTime': 0.01, 'EchoNumber': 1} echo_times = [0.01, 0.02, 0.03] out_fn_true = 'sub-X_ses-Y_task-Z_run-01_echo-1_bold' out_fn_test = update_multiecho_name(metadata, base_fn, echo_times) assert out_fn_test == out_fn_true # EchoNumber field is missing from metadata, so use echo_times metadata = {'EchoTime': 0.01} out_fn_test = update_multiecho_name(metadata, base_fn, echo_times) assert out_fn_test == out_fn_true # Catch an unsupported type and *do not* update base_fn = 'sub-X_ses-Y_task-Z_run-01_phasediff' out_fn_test = update_multiecho_name(metadata, base_fn, echo_times) assert out_fn_test == base_fn # EchoTime is missing, but use EchoNumber (which is the first thing it checks) base_fn = 'sub-X_ses-Y_task-Z_run-01_bold' out_fn_true = 'sub-X_ses-Y_task-Z_run-01_echo-1_bold' metadata = {'EchoNumber': 1} echo_times = [False, 0.02, 0.03] out_fn_test = update_multiecho_name(metadata, base_fn, echo_times) assert out_fn_test == out_fn_true # Both EchoTime and EchoNumber are missing, which raises a KeyError base_fn = 'sub-X_ses-Y_task-Z_run-01_bold' metadata = {} echo_times = [False, 0.02, 0.03] with pytest.raises(KeyError): update_multiecho_name(metadata, base_fn, echo_times) # Providing echo times as something other than a list should raise a TypeError base_fn = 'sub-X_ses-Y_task-Z_run-01_bold' with pytest.raises(TypeError): update_multiecho_name(metadata, base_fn, set(echo_times))