code: def _check_figure_shapes_custom_sized(test_input, expected, fig):
      # look up domains in fig
      corrects = []
      for d, ax in expected:
          dom = [0, 1]
          if ax[: len("xaxis")] == "xaxis":
              d["x0"], d["x1"] = dom
          elif ax[: len("yaxis")] == "yaxis":
              d["y0"], d["y1"] = dom
          else:
              raise ValueError("bad axis")
          corrects.append(d)
      f, kwargs = test_input
      f(fig, **kwargs)
      if len(fig.layout.shapes) == 0:
          assert False
      if len(fig.layout.shapes) != len(corrects):
          assert False
      ret = True
      for s, d in zip(fig.layout.shapes, corrects):
          ret &= _cmp_partial_dict(s, d)
      assert ret
  
file_path: plotly.py/packages/python/plotly/plotly/tests/test_optional/test_autoshapes/test_axis_span_shapes.py
imports: import plotly.graph_objs
  from plotly.subplots import make_subplots
  from plotly.basedatatypes import _indexing_combinations
  import plotly.express
  import pytest
  from .common import _cmp_partial_dict, _check_figure_layout_objects
label_desc: Use image node_id 9 for calling a global function with example usage: _check_figure_shapes_custom_sized(test_input, expected, fig) without return types