code: def test_16bit(self):
      image = np.zeros((21, 21), dtype=np.uint16)
      footprint = np.ones((3, 3), dtype=np.uint8)
  
      for bitdepth in range(17):
          value = 2**bitdepth - 1
          image[10, 10] = value
          if bitdepth >= 11:
              expected = ["Bad rank filter performance"]
          else:
              expected = []
          with expected_warnings(expected):
              assert rank.minimum(image, footprint)[10, 10] == 0
              assert rank.maximum(image, footprint)[10, 10] == value
              mean_val = rank.mean(image, footprint)[10, 10]
              assert mean_val == int(value / footprint.size)
  
imports: import numpy
  import pytest
  from skimage import data, morphology, util
  from skimage._shared._warnings import expected_warnings
  from skimage._shared.testing import assert_allclose, assert_array_almost_equal, assert_equal, fetch, run_in_parallel
  from skimage.filters import rank
  from skimage.filters.rank import __all__
  from skimage.filters.rank import subtract_mean
  from skimage.morphology import ball, disk, gray
  from skimage.util import img_as_float, img_as_ubyte
label_desc: Use image node_id 28 for calling the TestRank obj's underlying member method code with example usage: obj.test_16bit() without return types