code: def test_plot_lines_markers_with_bands():
      """Tests ``plot_lines_markers`` with bands."""
      df = pd.DataFrame(
          {
              "x": range(4),
              "y": range(4),
              "z1": range(1, 5),
              "z2": range(-1, 3),
              "w": [(0, 1), (1, 3), (1, 5), (3, 5)],
              "u": [(2, 3), (3, 3), (4, 4), (6, 8)],
          }
      )
  
      fig = plot_lines_markers(
          df=df, x_col="x", line_cols=["y", "z1"], band_cols=["u", "w"]
      )
  
      assert len(fig.data) == 6
      assert fig.data[0].line.color is None
      assert fig.data[1].line.color is None
      assert fig.data[2].line.color == "rgba(0, 0, 0, 0)"
      assert fig.data[3].line.color == "rgba(0, 0, 0, 0)"
      assert fig.data[4].line.color == "rgba(0, 0, 0, 0)"
      assert fig.data[5].line.color == "rgba(0, 0, 0, 0)"
  
      assert fig.data[3].name == "u"
      assert fig.data[5].name == "w"
      assert fig.data[3].fillcolor == "rgba(31, 119, 180, 0.2)"
      assert fig.data[5].fillcolor == "rgba(255, 127, 14, 0.2)"
      assert fig.layout.title.text is None
  
      # Bands with custom colors and a title for the plot.
      fig = plot_lines_markers(
          df=df,
          x_col="x",
          line_cols=["y", "z1"],
          band_cols=["u", "w"],
          band_colors=["rgba(0, 255, 0, 0.2)", "rgba(255, 0, 0, 0.2)"],
          title="custom band colors",
      )
  
      assert len(fig.data) == 6
      assert fig.data[0].line.color is None
      assert fig.data[1].line.color is None
      assert fig.data[2].line.color == "rgba(0, 0, 0, 0)"
      assert fig.data[3].line.color == "rgba(0, 0, 0, 0)"
      assert fig.data[4].line.color == "rgba(0, 0, 0, 0)"
      assert fig.data[5].line.color == "rgba(0, 0, 0, 0)"
  
      assert fig.data[3].name == "u"
      assert fig.data[5].name == "w"
  
      assert fig.data[3].fillcolor == "rgba(0, 255, 0, 0.2)"
      assert fig.data[5].fillcolor == "rgba(255, 0, 0, 0.2)"
      assert fig.layout.title.text == "custom band colors"
  
      # Bands specified by dictionary.
      df = pd.DataFrame(
          {
              "x": range(4),
              "y": [2, 3, 4, 5],
              "z1": [4, 5, 6, 8],
              "z2": range(-1, 3),
              "w1": [5, 6, 6, 8],
              "w2": [7, 8, 9, 9],
              "u1": [2, 3, 5, 7],
              "u3": [4, 5, 8, 8],
          }
      )
  
      fig = plot_lines_markers(
          df=df,
          x_col="x",
          line_cols=["y", "z1"],
          band_cols_dict={"u": ["u1", "u3"], "w": ["w1", "w2"]},
          band_colors=["rgba(0, 255, 0, 0.2)", "rgba(255, 0, 0, 0.2)"],
          title="bands via dict",
      )
  
      assert len(fig.data) == 6
      assert fig.data[0].line.color is None
      assert fig.data[1].line.color is None
      assert fig.data[2].line.color == "rgba(0, 0, 0, 0)"
      assert fig.data[3].line.color == "rgba(0, 0, 0, 0)"
      assert fig.data[4].line.color == "rgba(0, 0, 0, 0)"
      assert fig.data[5].line.color == "rgba(0, 0, 0, 0)"
  
      assert fig.data[3].name == "u"
      assert fig.data[5].name == "w"
  
      assert fig.data[3].fillcolor == "rgba(0, 255, 0, 0.2)"
      assert fig.data[5].fillcolor == "rgba(255, 0, 0, 0.2)"
      assert fig.layout.title.text == "bands via dict"
  
imports: import numpy
  import pandas
  import pytest
  from greykite.common.constants import END_TIME_COL
  from greykite.common.constants import START_TIME_COL
  from greykite.common.python_utils import assert_equal
  from greykite.common.viz.colors_utils import get_distinct_colors
  from greykite.common.viz.timeseries_annotate import add_multi_vrects
  from greykite.common.viz.timeseries_annotate import plot_anomalies_over_forecast_vs_actual
  from greykite.common.viz.timeseries_annotate import plot_event_periods_multi
  from greykite.common.viz.timeseries_annotate import plot_lines_markers
  from greykite.common.viz.timeseries_annotate import plot_overlay_anomalies_multi_metric
  from greykite.common.viz.timeseries_annotate import plot_precision_recall_curve
  from greykite.common.viz.timeseries_annotate import plt_annotate_series
  from greykite.common.viz.timeseries_annotate import plt_compare_series_annotations
label_desc: Use image node_id 5 for calling a global function with example usage: test_plot_lines_markers_with_bands() without return types