code: def test_issue2382(height):
      data_array = numpy.arange(height, dtype="f4").reshape((height, 1))
  
      with MemoryFile() as memfile:
          with memfile.open(
              driver="GTiff",
              count=1,
              height=height,
              width=1,
              dtype=data_array.dtype,
              transform=Affine(1.0, 0.0, 0, 0.0, -1.0, 0),
          ) as dataset:
              dataset.write(data_array[numpy.newaxis, ...])
  
          with memfile.open(driver="GTiff") as dataset:
              # read first column, rows 0-388
              a = dataset.read(
                  1,
                  window=Window(
                      col_off=0, row_off=0, width=1, height=388
                  ),
                  boundless=True,
                  fill_value=-9999,
              )[:, 0]
              assert_almost_equal(a, numpy.arange(388))
  
              b = dataset.read(
                  1,
                  window=Window(
                      col_off=0, row_off=-12, width=1, height=400
                  ),
                  boundless=True,
                  fill_value=-9999,
              )[:, 0]
              # the expected result is 12 * -9999 and then the same as above
              assert_almost_equal(
                  b, numpy.concatenate([[-9999] * 12, a])
              )
  
imports: from affine import Affine
  import shutil
  from hypothesis import example, given
  import hypothesis.strategies
  import numpy
  from numpy.testing import assert_almost_equal
  import pytest
  import rasterio
  from rasterio.io import MemoryFile
  from rasterio.windows import Window
label_desc: Use image node_id 2 for calling a global function with example usage: test_issue2382(height) without return types