Esempio n. 1
0
 def test_sum(self):
     for shape, tiles_count in self.data:
         tiler = Tiler(shape, tiles_count, outlier=False, supersampling=4)
         ones = np.ones(tiler.tile_shape, dtype=cfg.PRECISION.np_float)
         ones_gpu = cl_array.to_device(cfg.OPENCL.queue, ones)
         out = tiler.average(ones_gpu).get()
         np.testing.assert_almost_equal(
             out, ones[::tiler.supersampling, ::tiler.supersampling])
Esempio n. 2
0
    def test_tile_shape(self):
        for size, tiles_count in self.data:
            tiler = Tiler(size, tiles_count, True)
            self.assertEqual(2 * size[0] / tiles_count[0], tiler.tile_shape[0])
            self.assertEqual(2 * size[1] / tiles_count[1], tiler.tile_shape[1])

            tiler = Tiler(size, tiles_count, False)
            self.assertEqual(size[0] / tiles_count[0], tiler.tile_shape[0])
            self.assertEqual(size[1] / tiles_count[1], tiler.tile_shape[1])
Esempio n. 3
0
    def test_tile_indices(self):
        sizes = [256, 1024]
        tile_counts = [2, 4]
        for j in range(len(sizes)):
            for i in range(len(sizes)):
                size = sizes[j], sizes[i]
                for t_j in range(len(tile_counts)):
                    for t_i in range(len(tile_counts)):
                        tiles_count = tile_counts[t_j], tile_counts[t_i]
                        outlier = True
                        tiler = Tiler(size, tiles_count, outlier)
                        self._check_tiles(tiler.tile_indices, size,
                                          tiles_count, outlier)

                        outlier = False
                        tiler = Tiler(size, tiles_count, outlier)
                        self._check_tiles(tiler.tile_indices, size,
                                          tiles_count, outlier)
Esempio n. 4
0
    def test_insert(self):
        shape = 16, 32
        tiles_count = 4, 2
        tile_shape = [shape[i] / tiles_count[i] for i in range(len(shape))]

        tilers = [
            Tiler(shape, tiles_count, outlier=True, supersampling=1),
            Tiler(shape, tiles_count, outlier=False, supersampling=1),
            Tiler(shape, tiles_count, outlier=True, supersampling=2),
            Tiler(shape, tiles_count, outlier=False, supersampling=2),
            Tiler(shape, tiles_count, outlier=True, supersampling=4),
            Tiler(shape, tiles_count, outlier=False, supersampling=4)
        ]
        for tiler in tilers:
            self.assertEqual(tiler.overall_image.shape, shape)
            for j in range(tiles_count[0]):
                for i in range(tiles_count[1]):
                    tile = np.random.random(tile_shape).\
                        astype(tiler.overall_image.dtype)
                    tiler.insert(tile, (j, i))
                    np.testing.assert_equal(
                        tiler.overall_image[j * tile_shape[0]:tile_shape[0] *
                                            (j + 1),
                                            i * tile_shape[1]:tile_shape[1] *
                                            (i + 1)], tile)
Esempio n. 5
0
    def test_result_tile_shape(self):
        for shape, tiles_count in self.data:
            tiler = Tiler(shape, tiles_count, outlier=False, supersampling=1)
            ground_truth = tiler.tile_shape
            self.assertEqual(tiler.result_tile_shape, ground_truth)

            tiler = Tiler(shape, tiles_count, outlier=False, supersampling=2)
            ground_truth = tuple(
                [dim / tiler.supersampling for dim in tiler.tile_shape])
            self.assertEqual(tiler.result_tile_shape, ground_truth)

            tiler = Tiler(shape, tiles_count, outlier=True, supersampling=1)
            ground_truth = tuple([dim / 2 for dim in tiler.tile_shape])
            self.assertEqual(tiler.result_tile_shape, ground_truth)

            tiler = Tiler(shape, tiles_count, outlier=True, supersampling=2)
            ground_truth = tuple(
                [dim / 2 / tiler.supersampling for dim in tiler.tile_shape])
            self.assertEqual(tiler.result_tile_shape, ground_truth)

            tiler = Tiler(shape, tiles_count, outlier=True, supersampling=4)
            ground_truth = tuple(
                [dim / 2 / tiler.supersampling for dim in tiler.tile_shape])
            self.assertEqual(tiler.result_tile_shape, ground_truth)