--- a +++ b/tests/util/test_images.py @@ -0,0 +1,36 @@ +from pathaia.util.images import get_coords_from_mask, regular_grid +import numpy as np + + +def test_regular_grid(): + shape = (8, 12) + interval = 0 + psize = 4 + expected = [(0, 0), (0, 4), (0, 8), (4, 0), (4, 4), (4, 8)] + assert expected == sorted(list(regular_grid(shape, interval, psize))) + + interval = -1 + expected = [(0, 0), (0, 3), (0, 6), (3, 0), (3, 3), (3, 6)] + assert expected == sorted(list(regular_grid(shape, interval, psize))) + + interval = 1 + expected = [(0, 0), (0, 5)] + assert expected == sorted(list(regular_grid(shape, interval, psize))) + + +def test_get_coords_from_mask(): + shape = (8, 12) + interval = 0 + psize = 4 + mask = np.zeros((3, 2), dtype=bool) + expected = [] + assert expected == sorted(list(get_coords_from_mask(mask, shape, interval, psize))) + + mask[1, 1] = True + expected = [(4, 4)] + assert expected == sorted(list(get_coords_from_mask(mask, shape, interval, psize))) + + mask = np.ones((3, 2), dtype=bool) + assert sorted(list(regular_grid(shape, interval, psize))) == sorted( + list(get_coords_from_mask(mask, shape, interval, psize)) + )