def test_initialization_sets_nonzero_version(): image = ismrmrd.Image.from_array( common.create_random_array((128, 128), dtype=np.float32)) assert image.version is not 0, \ "Default image version should not be zero."
def test_initialization_with_array(): image_data = common.create_random_array((256, 128), dtype=np.float32) image = ismrmrd.Image.from_array(image_data) assert np.array_equal(image_data.transpose(), image.data.squeeze()), \ "Image data does not match data used to initialize image."
def test_serialization_with_header_fields(): image_data = common.create_random_array((128, 128), dtype=np.float32) image = ismrmrd.Image.from_array(image_data, **common.create_random_image_properties()) read_image = ismrmrd.Image.from_bytes(image.to_bytes()) assert image == read_image
def test_to_and_from_bytes(): image_data = common.create_random_array((128, 128), dtype=np.float32) image = ismrmrd.Image.from_array(image_data) read_image = ismrmrd.Image.from_bytes(image.to_bytes()) assert image == read_image
def test_serialization_of_unicode_attribute_string(): image_data = common.create_random_array((128, 128), dtype=np.float32) image = ismrmrd.Image.from_array(image_data) image.attribute_string = u"يتم ترجمتها باستخدام مترجم جوجل." read_image = ismrmrd.Image.from_bytes(image.to_bytes()) assert image == read_image
def test_serialize_and_deserialize(): image_data = common.create_random_array((128, 128), dtype=np.float32) image = ismrmrd.Image.from_array(image_data) with io.BytesIO(b'') as stream: image.serialize_into(stream.write) stream.seek(0) read_image = ismrmrd.Image.deserialize_from(stream.read) assert image == read_image
def test_initialization_with_3d_image_and_channels(): image_data = common.create_random_array((128, 64, 32, 16), dtype=np.float32) image = ismrmrd.Image.from_array(image_data) assert np.array_equal(image_data.transpose(), image.data.squeeze()), \ "Image data does not match data used to initialize image." assert image.channels is 16, \ "Unexpected number of channels: {}".format(image.channels) assert image.matrix_size == (32, 64, 128), \ "Unexpected matrix size: {}".format(image.matrix_size)
def test_initialization_with_array_and_header_properties(): properties = common.create_random_image_properties() image_data = common.create_random_array((256, 512), dtype=np.float32) image = ismrmrd.Image.from_array(image_data, **properties) for field in properties: try: assert all(map(lambda a, b: a == b, properties.get(field), getattr(image, field))), \ "Image property doesn't match initialization value: " + field except TypeError: assert properties.get(field) == getattr(image, field), \ "Image property doesn't match initialization value: " + field
def test_initialization_with_array_and_acquisition(): acquisition = common.create_random_acquisition() image_data = common.create_random_array((256, 128), dtype=np.float32) image = ismrmrd.Image.from_array(image_data, acquisition=acquisition) assert np.array_equal(image_data.transpose(), image.data.squeeze()), \ "Image data does not match data used to initialize image." for field in [ 'version', 'measurement_uid', 'position', 'read_dir', 'phase_dir', 'slice_dir', 'patient_table_position', 'acquisition_time_stamp', 'physiology_time_stamp' ]: assert bytes(getattr(acquisition, field)) == bytes(getattr(image, field)), \ "Acquisition header field not copied to image."