code: def test_decollate_datashade_kdims_layout(self):
      layout = self.dmap_datashade_kdim_points + self.dmap_b
  
      decollated = layout.decollate()
      self.assertIsInstance(decollated, DynamicMap)
  
      # Check kdims
      self.assertEqual(decollated.kdims, self.dmap_ab.kdims)
  
      # Check top-level stream types
      self.assertEqual(
          [PlotSize, RangeXY], [type(s) for s in decollated.streams]
      )
  
      # Get expected
      plot_size, range_xy = self.dmap_datashade_kdim_points.streams
      plot_size.event(width=250, height=300)
      range_xy.event(x_range=(0, 10), y_range=(0, 15))
      expected = (
          self.dmap_datashade_kdim_points[4.0, 5.0] + self.dmap_b[5.0]
      )
  
      # Call decollated callback function
      result = decollated.callback.callable(
          4.0,
          5.0,
          {"width": 250, "height": 300},
          {"x_range": (0, 10), "y_range": (0, 15)},
      )
  
      self.assertEqual(expected, result)
  
imports: from unittest import skipIf
  import param
  from holoviews.core import DynamicMap, GridSpace, HoloMap, NdOverlay, Overlay
  from holoviews.element import Points
  from holoviews.element.comparison import ComparisonTestCase
  from holoviews.streams import PlotSize, RangeXY, Stream
label_desc: Use image node_id 7 for calling the TestDecollation obj's underlying member method code with example usage: obj.test_decollate_datashade_kdims_layout() without return types