code: def test_pointevent_subclass_decode_json() -> None:
      for event_cls in point_events:
          if event_cls.event_name is None:
              continue  # Skip abstract base class
  
          model = Plot()
  
          decoder = Deserializer(references=[model])
          event = decoder.decode(
              dict(
                  type="event",
                  name=event_cls.event_name,
                  values=dict(
                      type="map",
                      entries=[
                          ["model", dict(id=model.id)],
                          ["sx", 3],
                          ["sy", -2],
                          ["x", 10],
                          ["y", 100],
                      ],
                  ),
              )
          )
  
          assert event.model == model
          assert event.sx == 3
          assert event.sy == -2
          assert event.x == 10
          assert event.y == 100
  
imports: from __future__ import annotations
  import pytest
  from bokeh.core.serialization import Deserializer
  from bokeh.models import Button, Div, Plot, TextInput
  from bokeh import events
label_desc: Use image node_id 3 for calling a global function with example usage: test_pointevent_subclass_decode_json() without return types