def test_update_uncombined_name(): """Unit testing for heudiconv.convert.update_uncombined_name(), which updates filenames with the ch field if appropriate. """ # Standard name update fn = 'sub-X_ses-Y_task-Z_run-01_bold' metadata = {'CoilString': 'H1'} channel_names = ['H1', 'H2', 'H3', 'HEA;HEP'] out_fn_true = 'sub-X_ses-Y_task-Z_run-01_ch-01_bold' out_fn_test = update_uncombined_name(metadata, fn, channel_names) assert out_fn_test == out_fn_true # CoilString field has no number in it metadata = {'CoilString': 'HEA;HEP'} out_fn_true = 'sub-X_ses-Y_task-Z_run-01_ch-04_bold' out_fn_test = update_uncombined_name(metadata, fn, channel_names) assert out_fn_test == out_fn_true
def test_update_uncombined_name(): """Unit testing for heudiconv.convert.update_uncombined_name(), which updates filenames with the ch field if appropriate. """ # Standard name update base_fn = 'sub-X_ses-Y_task-Z_run-01_bold' metadata = {'CoilString': 'H1'} channel_names = ['H1', 'H2', 'H3', 'HEA;HEP'] out_fn_true = 'sub-X_ses-Y_task-Z_run-01_ch-01_bold' out_fn_test = update_uncombined_name(metadata, base_fn, channel_names) assert out_fn_test == out_fn_true # CoilString field has no number in it, so we index the channel_names list metadata = {'CoilString': 'HEA;HEP'} out_fn_true = 'sub-X_ses-Y_task-Z_run-01_ch-04_bold' out_fn_test = update_uncombined_name(metadata, base_fn, channel_names) assert out_fn_test == out_fn_true # Extract the number from the CoilString and use that channel_names = ['H1', 'B1', 'H3', 'HEA;HEP'] metadata = {'CoilString': 'H1'} out_fn_true = 'sub-X_ses-Y_task-Z_run-01_ch-01_bold' out_fn_test = update_uncombined_name(metadata, base_fn, channel_names) assert out_fn_test == out_fn_true # NOTE: Extracting the number does not protect against multiple coils with the same number # (but, say, different letters) # Note that this is still "ch-01" metadata = {'CoilString': 'B1'} out_fn_true = 'sub-X_ses-Y_task-Z_run-01_ch-01_bold' out_fn_test = update_uncombined_name(metadata, base_fn, channel_names) assert out_fn_test == out_fn_true # 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_uncombined_name(metadata, base_fn, set(channel_names))