def test_ones(self, name): pipeline = Pipeline( get_project_path() / 'test/data/pipeline/ones.tif', get_project_path() / f'test/data/pipeline/{name}.tif', 45, 45) pipeline.run() result = pipeline.result window = get_corresponding_window( get_project_path() / 'test/data/pipeline/ones.tif', get_project_path() / f'test/data/pipeline/{name}.tif') pixels = get_pixels(window) rectangle = pixels inner_rectangle = rectangle[np.logical_and( np.logical_and(rectangle[:, 0] != window[0][0], rectangle[:, 1] != window[1][0]), np.logical_and(rectangle[:, 0] != window[0][1] - 1, rectangle[:, 1] != window[1][1] - 1))] # check result is lesser equal 9 everywhere assert (result <= 9).all() # check that all counts on the diagonal are greater 0 and less or equal 3 assert (result[rectangle[:, 0], rectangle[:, 1]] > 0).all() assert (result[inner_rectangle[:, 0], inner_rectangle[:, 1]] == 9).all() # check that result is 0 everywhere else result[rectangle[:, 0], rectangle[:, 1]] = 0 assert (result == 0).all()
def test_bottom_edge(self, name): pipeline = Pipeline( get_project_path() / 'test/data/pipeline/bottom_edge.tif', get_project_path() / f'test/data/pipeline/{name}.tif', 45, 45) pipeline.run() result = pipeline.result height, width = get_shape(get_project_path() / f'test/data/pipeline/{name}.tif') if height == width == 30: assert (result == 0).all() else: window = get_corresponding_window( get_project_path() / 'test/data/pipeline/bottom_edge.tif', get_project_path() / f'test/data/pipeline/{name}.tif') pixels = get_pixels(window) horizontal_edge = pixels[pixels[:, 0] == window[0][1] - 1] # check result is lesser equal 9 everywhere assert (result <= 9).all() # check that all counts on the vertical edge are greater 0 and less or equal 3 assert (result[horizontal_edge[:, 0], horizontal_edge[:, 1]] > 0).all() and (result[horizontal_edge[:, 0], horizontal_edge[:, 1]] <= 3).all() # check that result is 0 everywhere else result[horizontal_edge[:, 0], horizontal_edge[:, 1]] = 0 assert (result == 0).all()
def test_left_edge(self, name): pipeline = Pipeline( get_project_path() / 'test/data/pipeline/left_edge.tif', get_project_path() / f'test/data/pipeline/{name}.tif', 45, 45) pipeline.run() result = pipeline.result window = get_corresponding_window( get_project_path() / 'test/data/pipeline/left_edge.tif', get_project_path() / f'test/data/pipeline/{name}.tif') pixels = get_pixels(window) vertical_edge = pixels[pixels[:, 1] == window[1][0]] # check result is lesser equal 9 everywhere assert (result <= 9).all() # check that all counts on the vertical edge are greater 0 and less or equal 3 assert (result[vertical_edge[:, 0], vertical_edge[:, 1]] > 0).all( ) and (result[vertical_edge[:, 0], vertical_edge[:, 1]] <= 3).all() # check that result is 0 everywhere else result[vertical_edge[:, 0], vertical_edge[:, 1]] = 0 assert (result == 0).all()
def test_eye(self, name): pipeline = Pipeline( get_project_path() / 'test/data/pipeline/eye.tif', get_project_path() / f'test/data/pipeline/{name}.tif', 45, 45) pipeline.run() result = pipeline.result window = get_corresponding_window( get_project_path() / 'test/data/pipeline/eye.tif', get_project_path() / f'test/data/pipeline/{name}.tif') first_pixel = get_pixels(window)[0] diagonal = np.array([[ first_pixel[0] + i, first_pixel[1] + i ] for i in range( min(window[0][1] - window[0][0], window[1][1] - window[1][0]))]) # check result is lesser equal 9 everywhere assert (result <= 9).all() # check that all counts on the diagonal are greater 0 and less or equal 3 assert (result[diagonal[:, 0], diagonal[:, 1]] > 0).all() and ( result[diagonal[:, 0], diagonal[:, 1]] <= 3).all() # check that result is 0 everywhere else result[diagonal[:, 0], diagonal[:, 1]] = 0 assert (result == 0).all()
def test_get_pixels(self): window = ((0, 3), (5, 8)) expected = np.array([[0, 5], [0, 6], [0, 7], [1, 5], [1, 6], [1, 7], [2, 5], [2, 6], [2, 7]]) assert np.all(get_pixels(window) == expected)