def test_manual_rows_and_columns(): numpy.random.seed(0) images = [ numpy.random.uniform(size=(20, 10)).astype(numpy.float32) for i in range(96) ] workspace, module = make_tile_workspace(images) assert isinstance(module, cellprofiler.modules.tile.Tile) assert isinstance(workspace, cellprofiler_core.workspace.Workspace) module.wants_automatic_columns.value = False module.wants_automatic_rows.value = False module.rows.value = 6 module.columns.value = 16 module.tile_style.value = cellprofiler.modules.tile.S_ROW module.prepare_group(workspace, (), numpy.arange(1, 97)) for i in range(96): workspace.set_image_set_for_testing_only(i) module.run(workspace) image = workspace.image_set.get_image(OUTPUT_IMAGE_NAME) pixel_data = image.pixel_data assert pixel_data.shape[0] == 6 * 20 assert pixel_data.shape[1] == 16 * 10 for i, image in enumerate(images): ii = int(i / 16) jj = i % 16 iii = ii * 20 jjj = jj * 10 assert numpy.all(pixel_data[iii : (iii + 20), jjj : (jjj + 10)] == image)
def test_different_sizes(): numpy.random.seed(10) images = [ numpy.random.uniform(size=(20, 10)).astype(numpy.float32), numpy.random.uniform(size=(10, 20)).astype(numpy.float32), numpy.random.uniform(size=(40, 5)).astype(numpy.float32), numpy.random.uniform(size=(40, 20)).astype(numpy.float32), ] workspace, module = make_tile_workspace(images) assert isinstance(module, cellprofiler.modules.tile.Tile) assert isinstance(workspace, cellprofiler_core.workspace.Workspace) module.wants_automatic_columns.value = False module.wants_automatic_rows.value = False module.rows.value = 1 module.columns.value = 4 module.tile_style.value = cellprofiler.modules.tile.S_ROW module.prepare_group(workspace, (), numpy.arange(1, 4)) for i in range(4): workspace.set_image_set_for_testing_only(i) module.run(workspace) module.post_group(workspace, None) pixel_data = workspace.image_set.get_image(OUTPUT_IMAGE_NAME).pixel_data assert pixel_data.shape[0] == 20 assert pixel_data.shape[1] == 40 assert numpy.all(pixel_data[:, :10] == images[0]) assert numpy.all(pixel_data[:10, 10:20] == images[1][:, :10]) assert numpy.all(pixel_data[10:, 10:20] == 0) assert numpy.all(pixel_data[:, 20:25] == images[2][:20, :]) assert numpy.all(pixel_data[:, 25:30] == 0) assert numpy.all(pixel_data[:, 30:] == images[3][:20, :10])