diff --git a/api/tests/chain/test_tile.py b/api/tests/chain/test_tile.py index 097d6ad1..a006a34e 100644 --- a/api/tests/chain/test_tile.py +++ b/api/tests/chain/test_tile.py @@ -2,7 +2,7 @@ import unittest from PIL import Image -from onnx_web.chain.tile import complete_tile, get_tile_grads, needs_tile +from onnx_web.chain.tile import complete_tile, generate_tile_spiral, get_tile_grads, needs_tile from onnx_web.params import Size @@ -63,9 +63,30 @@ class TestTileGrads(unittest.TestCase): self.assertEqual(grad_x, [0, 1, 1, 0]) self.assertEqual(grad_y, [1, 1, 1, 1]) - def test_horizontal_edge_tile(self): grad_x, grad_y = get_tile_grads(0, 32, 8, 8, 64) self.assertEqual(grad_x, [1, 1, 1, 1]) self.assertEqual(grad_y, [0, 1, 1, 0]) + + +class TestGenerateTileSpiral(unittest.TestCase): + def test_spiral_complete(self): + tiles = generate_tile_spiral(16, 16, 8, 0.0) + + self.assertEqual(len(tiles), 4) + self.assertEqual(tiles, [(0, 0), (8, 0), (8, 8), (0, 8)]) + + def test_spiral_no_overlap(self): + tiles = generate_tile_spiral(64, 64, 8, 0.0) + + self.assertEqual(len(tiles), 64) + self.assertEqual(tiles[0:4], [(0, 0), (8, 0), (16, 0), (24, 0)]) + self.assertEqual(tiles[-5:-1], [(16, 24), (24, 24), (32, 24), (32, 32)]) + + def test_spiral_50_overlap(self): + tiles = generate_tile_spiral(64, 64, 8, 0.5) + + self.assertEqual(len(tiles), 225) + self.assertEqual(tiles[0:4], [(0, 0), (4, 0), (8, 0), (12, 0)]) + self.assertEqual(tiles[-5:-1], [(32, 32), (28, 32), (24, 32), (24, 28)])