diff --git a/monai/transforms/io/array.py b/monai/transforms/io/array.py index a256a16ec8..de9a8800a2 100644 --- a/monai/transforms/io/array.py +++ b/monai/transforms/io/array.py @@ -42,7 +42,7 @@ def switch_endianness(data, old, new): if data.dtype.byteorder == old: data = data.newbyteorder(new) elif isinstance(data, tuple): - data = (switch_endianness(x, old, new) for x in data) + data = tuple(switch_endianness(x, old, new) for x in data) elif isinstance(data, list): data = [switch_endianness(x, old, new) for x in data] elif isinstance(data, dict): diff --git a/tests/test_nifti_endianness.py b/tests/test_nifti_endianness.py index 14317c0832..d8adb1efb2 100644 --- a/tests/test_nifti_endianness.py +++ b/tests/test_nifti_endianness.py @@ -8,6 +8,7 @@ from monai.data import DataLoader, Dataset, create_test_image_2d from monai.transforms import LoadImage, LoadImaged +from monai.transforms.io.array import switch_endianness from monai.utils.module import optional_import if TYPE_CHECKING: @@ -43,6 +44,11 @@ def test_endianness(self, endianness, use_array, image_only): check_loader = DataLoader(check_ds, batch_size=1) _ = next(iter(check_loader)) + def test_switch(self): # verify data types + for data in (np.zeros((2, 1)), ("test",), [24, 42], {"foo": "bar"}, True, 42): + output = switch_endianness(data, ">", "<") + self.assertEqual(type(data), type(output)) + if __name__ == "__main__": unittest.main()