示例#1
0
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."
示例#2
0
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."
示例#3
0
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
示例#4
0
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
示例#5
0
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
示例#6
0
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
示例#7
0
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)
示例#8
0
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
示例#9
0
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."