code: def test_add_annotated_shape_single_plot(single_plot_fixture):
      single_plot_fixture.add_hline(y=1, annotation_text="A")
      single_plot_fixture.add_vline(x=2, annotation_text="B")
      single_plot_fixture.add_hrect(y0=3, y1=4, annotation_text="C")
      single_plot_fixture.add_vrect(x0=5, x1=6, annotation_text="D")
      ret = len(single_plot_fixture.layout.annotations) == 4
      for sh, d in zip(
          single_plot_fixture.layout.annotations,
          [{"text": "A"}, {"text": "B"}, {"text": "C"}, {"text": "D"}],
      ):
          ret &= _cmp_partial_dict(sh, d)
      assert ret
  
imports: import plotly.graph_objects
  from plotly.subplots import make_subplots
  from itertools import product
  import os
  import sys
  import pytest
  import json
  from .common import _cmp_partial_dict, _check_figure_layout_objects
label_desc: Use image node_id 4 for calling a global function with example usage: test_add_annotated_shape_single_plot(single_plot_fixture) without return types