code: def test_map_overlap_trim_using_drop_axis_and_different_depths(
      drop_axis,
  ):
      x = da.random.default_rng().standard_normal(
          (5, 10, 8), chunks=(2, 5, 4)
      )
  
      def _mean(x):
          return x.mean(axis=drop_axis)
  
      expected = _mean(x)
  
      # unique boundary and depth value per axis
      boundary = (0, "reflect", "nearest")
      depth = (1, 3, 2)
      # to match expected result, dropped axes must have depth 0
      _drop_axis = (drop_axis,) if np.isscalar(drop_axis) else drop_axis
      _drop_axis = [d % x.ndim for d in _drop_axis]
      depth = tuple(
          0 if i in _drop_axis else d for i, d in enumerate(depth)
      )
  
      y = da.map_overlap(
          _mean,
          x,
          depth=depth,
          boundary=boundary,
          drop_axis=drop_axis,
          dtype=float,
      ).compute()
      assert_array_almost_equal(expected, y)
  
imports: from __future__ import annotations
  import pytest
  import numpy
  from numpy.testing import assert_array_almost_equal, assert_array_equal
  import dask.array
  from dask.array.lib.stride_tricks import sliding_window_view
  from dask.array.overlap import boundaries, constant, ensure_minimum_chunksize, nearest, overlap, overlap_internal, periodic, reflect, trim_internal
  from dask.array.utils import assert_eq, same_keys
label_desc: Use image node_id 22 for calling a global function with example usage: test_map_overlap_trim_using_drop_axis_and_different_depths(drop_axis) and returns: x