code: def testBoundsXCallbackEventData(self):
      selected_data1 = {"range": {"x": [1, 4], "y": [-1, 5]}}
      event_data = BoundsXCallback.get_event_data_from_property_update(
          "selected_data", selected_data1, self.fig_dict
      )
  
      self.assertEqual(
          event_data,
          {
              "first": {"boundsx": (1, 4)},
              "second": {"boundsx": (1, 4)},
              "third": {"boundsx": None},
              "forth": {"boundsx": None},
          },
      )
  
imports: import uuid
  from unittest import TestCase
  from unittest.mock import Mock
  import plotly.graph_objs
  from holoviews import Tiles
  from holoviews.plotting.plotly.callbacks import BoundsXCallback, BoundsXYCallback, BoundsYCallback, RangeXCallback, RangeXYCallback, RangeYCallback, Selection1DCallback
  from holoviews.streams import BoundsX, BoundsXY, BoundsY, RangeX, RangeXY, RangeY, Selection1D
label_desc: Use image node_id 11 for calling the TestCallbacks obj's underlying member method code with example usage: obj.testBoundsXCallbackEventData() without return types