tests.test_tiles
1from csi_images.csi_scans import Scan 2from csi_images.csi_tiles import Tile 3 4 5def test_axioscan_tiles(): 6 scan = Scan.load_yaml("tests/data") 7 tile = Tile(scan, 0) 8 # Assert that the tile is in the top-left corner 9 assert (tile.x, tile.y) == (0, 0) 10 assert tile.position_to_n() == 0 11 assert tile.n_to_position() == (0, 0) 12 13 # Assert that position_to_n() and n_to_position() work with different positions 14 assert tile.position_to_n((1, 0)) == 1 15 assert tile.n_to_position(1) == (1, 0) 16 17 assert tile.position_to_n((0, 1)) == scan.roi[0].tile_cols 18 assert tile.n_to_position(scan.roi[0].tile_cols) == (0, 1) 19 20 assert ( 21 tile.position_to_n((scan.roi[0].tile_cols - 1, scan.roi[0].tile_rows - 1)) 22 == scan.roi[0].tile_cols * scan.roi[0].tile_rows - 1 23 ) 24 assert tile.n_to_position(scan.roi[0].tile_cols * scan.roi[0].tile_rows - 1) == ( 25 scan.roi[0].tile_cols - 1, 26 scan.roi[0].tile_rows - 1, 27 ) 28 29 # Assert that creating a tile with a position works correctly 30 tile = Tile(scan, (1, 0)) 31 assert tile.n == 1 32 33 # Assert that creating a tile with a bad n_roi raises an error 34 try: 35 Tile(scan, 0, 1) 36 assert False 37 except ValueError: 38 assert True 39 40 41def test_bzscanner_tiles(): 42 scan = Scan.load_txt("tests/data") 43 tile = Tile(scan, 0) 44 # Assert that the tile is in the top-left corner 45 assert tile.x == 0 46 assert tile.y == 0 47 # Assert row-major indexing 48 tile = Tile(scan, scan.roi[0].tile_cols - 1) 49 assert tile.x == scan.roi[0].tile_cols - 1 50 assert tile.y == 0 51 # Assert snake indexing 52 tile = Tile(scan, scan.roi[0].tile_cols) 53 assert tile.x == scan.roi[0].tile_cols - 1 54 assert tile.y == 1 55 # Assert snake indexing again 56 tile = Tile(scan, 2 * scan.roi[0].tile_cols) 57 assert tile.x == 0 58 assert tile.y == 2 59 60 61def test_getting_tiles(): 62 scan = Scan.load_yaml("tests/data") 63 # All tiles 64 tiles = Tile.get_tiles(scan) 65 assert len(tiles) == scan.roi[0].tile_rows * scan.roi[0].tile_cols 66 # All tiles, as a grid 67 tiles = Tile.get_tiles(scan, as_flat=False) 68 assert len(tiles) == scan.roi[0].tile_rows 69 assert len(tiles[0]) == scan.roi[0].tile_cols 70 71 # Just the first row 72 tiles = Tile.get_tiles_by_row_col(scan, rows=[0]) 73 assert len(tiles) == scan.roi[0].tile_cols 74 assert all(tile.y == 0 for tile in tiles) 75 assert all(tile.x == i for i, tile in enumerate(tiles)) 76 77 # Just the first column 78 tiles = Tile.get_tiles_by_row_col(scan, cols=[0]) 79 assert len(tiles) == scan.roi[0].tile_rows 80 assert all(tile.x == 0 for tile in tiles) 81 assert all(tile.y == i for i, tile in enumerate(tiles)) 82 83 # The bottom-right corner, with 4 tiles total 84 tiles = Tile.get_tiles_by_xy_bounds( 85 scan, 86 ( 87 scan.roi[0].tile_cols - 2, 88 scan.roi[0].tile_rows - 2, 89 scan.roi[0].tile_cols, 90 scan.roi[0].tile_rows, 91 ), 92 ) 93 assert len(tiles) == 4 94 assert tiles[0].x == scan.roi[0].tile_cols - 2 95 assert tiles[0].y == scan.roi[0].tile_rows - 2 96 assert tiles[1].x == scan.roi[0].tile_cols - 1 97 assert tiles[1].y == scan.roi[0].tile_rows - 2 98 assert tiles[2].x == scan.roi[0].tile_cols - 2 99 assert tiles[2].y == scan.roi[0].tile_rows - 1 100 assert tiles[3].x == scan.roi[0].tile_cols - 1 101 assert tiles[3].y == scan.roi[0].tile_rows - 1
def
test_axioscan_tiles():
6def test_axioscan_tiles(): 7 scan = Scan.load_yaml("tests/data") 8 tile = Tile(scan, 0) 9 # Assert that the tile is in the top-left corner 10 assert (tile.x, tile.y) == (0, 0) 11 assert tile.position_to_n() == 0 12 assert tile.n_to_position() == (0, 0) 13 14 # Assert that position_to_n() and n_to_position() work with different positions 15 assert tile.position_to_n((1, 0)) == 1 16 assert tile.n_to_position(1) == (1, 0) 17 18 assert tile.position_to_n((0, 1)) == scan.roi[0].tile_cols 19 assert tile.n_to_position(scan.roi[0].tile_cols) == (0, 1) 20 21 assert ( 22 tile.position_to_n((scan.roi[0].tile_cols - 1, scan.roi[0].tile_rows - 1)) 23 == scan.roi[0].tile_cols * scan.roi[0].tile_rows - 1 24 ) 25 assert tile.n_to_position(scan.roi[0].tile_cols * scan.roi[0].tile_rows - 1) == ( 26 scan.roi[0].tile_cols - 1, 27 scan.roi[0].tile_rows - 1, 28 ) 29 30 # Assert that creating a tile with a position works correctly 31 tile = Tile(scan, (1, 0)) 32 assert tile.n == 1 33 34 # Assert that creating a tile with a bad n_roi raises an error 35 try: 36 Tile(scan, 0, 1) 37 assert False 38 except ValueError: 39 assert True
def
test_bzscanner_tiles():
42def test_bzscanner_tiles(): 43 scan = Scan.load_txt("tests/data") 44 tile = Tile(scan, 0) 45 # Assert that the tile is in the top-left corner 46 assert tile.x == 0 47 assert tile.y == 0 48 # Assert row-major indexing 49 tile = Tile(scan, scan.roi[0].tile_cols - 1) 50 assert tile.x == scan.roi[0].tile_cols - 1 51 assert tile.y == 0 52 # Assert snake indexing 53 tile = Tile(scan, scan.roi[0].tile_cols) 54 assert tile.x == scan.roi[0].tile_cols - 1 55 assert tile.y == 1 56 # Assert snake indexing again 57 tile = Tile(scan, 2 * scan.roi[0].tile_cols) 58 assert tile.x == 0 59 assert tile.y == 2
def
test_getting_tiles():
62def test_getting_tiles(): 63 scan = Scan.load_yaml("tests/data") 64 # All tiles 65 tiles = Tile.get_tiles(scan) 66 assert len(tiles) == scan.roi[0].tile_rows * scan.roi[0].tile_cols 67 # All tiles, as a grid 68 tiles = Tile.get_tiles(scan, as_flat=False) 69 assert len(tiles) == scan.roi[0].tile_rows 70 assert len(tiles[0]) == scan.roi[0].tile_cols 71 72 # Just the first row 73 tiles = Tile.get_tiles_by_row_col(scan, rows=[0]) 74 assert len(tiles) == scan.roi[0].tile_cols 75 assert all(tile.y == 0 for tile in tiles) 76 assert all(tile.x == i for i, tile in enumerate(tiles)) 77 78 # Just the first column 79 tiles = Tile.get_tiles_by_row_col(scan, cols=[0]) 80 assert len(tiles) == scan.roi[0].tile_rows 81 assert all(tile.x == 0 for tile in tiles) 82 assert all(tile.y == i for i, tile in enumerate(tiles)) 83 84 # The bottom-right corner, with 4 tiles total 85 tiles = Tile.get_tiles_by_xy_bounds( 86 scan, 87 ( 88 scan.roi[0].tile_cols - 2, 89 scan.roi[0].tile_rows - 2, 90 scan.roi[0].tile_cols, 91 scan.roi[0].tile_rows, 92 ), 93 ) 94 assert len(tiles) == 4 95 assert tiles[0].x == scan.roi[0].tile_cols - 2 96 assert tiles[0].y == scan.roi[0].tile_rows - 2 97 assert tiles[1].x == scan.roi[0].tile_cols - 1 98 assert tiles[1].y == scan.roi[0].tile_rows - 2 99 assert tiles[2].x == scan.roi[0].tile_cols - 2 100 assert tiles[2].y == scan.roi[0].tile_rows - 1 101 assert tiles[3].x == scan.roi[0].tile_cols - 1 102 assert tiles[3].y == scan.roi[0].tile_rows - 1