code: def test_bottom_right():
      numpy.random.seed(9)
      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.place_first.value = (
          cellprofiler.modules.tile.P_BOTTOM_RIGHT
      )
  
      module.prepare_group(workspace, (), numpy.arange(1, 97))
  
      for i in range(96):
          workspace.set_image_set_for_testing_only(i)
          module.run(workspace)
      module.post_group(workspace, None)
      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 = 5 - int(i / 16)
          jj = 15 - (i % 16)
          iii = ii * 20
          jjj = jj * 10
          assert numpy.all(
              pixel_data[iii : (iii + 20), jjj : (jjj + 10)] == image
          )
  
imports: import numpy
  import six.moves
  import cellprofiler_core.image
  import cellprofiler_core.measurement
  import cellprofiler.modules.tile
  import cellprofiler_core.object
  import cellprofiler_core.pipeline
  import cellprofiler_core.workspace
  import tests.frontend.modules
label_desc: Use image node_id 12 for calling a global function with example usage: test_bottom_right() without return types