def test_local_global(self, origin, size, order, flip, g_start, g_size, l_start, l_size):
        ct = CoordinateTransformer(origin, size, Axis(order, flip))

        o_l_start, o_l_size = ct.to_local(g_start, g_size)
        self.assertTrue(np.array_equal(o_l_start, l_start))
        self.assertTrue(np.array_equal(o_l_size, l_size))

        o_g_start, o_g_size = ct.to_global(l_start, l_size)
        self.assertTrue(np.array_equal(o_g_start, g_start))
        self.assertTrue(np.array_equal(o_g_size, g_size))
Example #2
0
    def test_local_source(self, origin, global_size, dim_order, dim_flip, start, size):
        transformer = CoordinateTransformer(origin, global_size, Axis(dim_order, dim_flip))
        data_source = Mock()
        test_image = create_dummy_image(global_size)
        data_source.read_image.return_value = test_image
        source = LocalSource(data_source, transformer)
        local_image = source.read_image(start, size).image
        global_start, t_global_size = transformer.to_global(start, size)
        np.testing.assert_array_equal(data_source.read_image.call_args[0][0],
                                      start)
        np.testing.assert_array_equal(data_source.read_image.call_args[0][1],
                                      size)

        self.assertEqual(data_source.close.call_count, 0)
        source.close()
        self.assertEqual(data_source.close.call_count, 1)

        global_image = transformer.image_to_global(local_image)
        np.testing.assert_array_equal(local_image, test_image.image)
class FakeImageFileReader(ImageFileReader, Source):
    """Fake data source"""
    def __init__(self, descriptor, global_image=None):
        self.global_image = global_image
        self.descriptor = descriptor
        self.open = True
        self.transformer = CoordinateTransformer(
            self.descriptor.ranges.origin_start,
            self.descriptor.ranges.image_size, self.descriptor.axis)

    def read_image(self, start, size):
        if self.global_image:
            start_global, size_global = self.transformer.to_global(start, size)
            return self.global_image.get_sub_image(start_global,
                                                   size_global).image
        else:
            return None

    def write_image(self, data_source, rescale_limits):
        self.close(
        )  # Note: we generally expect file classes to close themselves after writing the file

    def close(self):
        self.open = False