code: def test_plot_multivariate():
      """Tests plot_multivariate function"""
      x_col = "time"
      df = pd.DataFrame(
          {
              x_col: [dt(2018, 1, 1), dt(2018, 1, 2), dt(2018, 1, 3)],
              "oranges": [8.5, 2.0, 3.0],
              "apples": [1.4, 2.1, 3.4],
              "bananas": [4.2, 3.1, 3.0],
          }
      )
  
      # plot with default values
      fig = plot_multivariate(df=df, x_col=x_col)
      assert fig.layout.showlegend
      assert fig.layout.xaxis.title.text == x_col
      assert fig.layout.yaxis.title.text == cst.VALUE_COL
      assert len(fig.data) == 3
      assert fig.data[0].mode == "lines"
      assert fig.data[0].name == "oranges"
      assert fig.data[1].name == "apples"
      assert fig.data[2].name == "bananas"
  
      # plot with style override
      fig = plot_multivariate(
          df=df,
          x_col=x_col,
          y_col_style_dict={
              "oranges": {
                  "legendgroup": "one",
                  "line": {"color": "red", "dash": "dot"},
              },
              "apples": None,
              "bananas": {
                  "name": "plantain",
                  "legendgroup": "one",
                  "mode": "markers",
                  "line": None,  # Remove line params since we use mode="markers"
              },
          },
          xlabel="xlab",
          ylabel="ylab",
          title="New Title",
          showlegend=False,
      )
      assert not fig.layout.showlegend
      assert fig.layout.xaxis.title.text == "xlab"
      assert fig.layout.yaxis.title.text == "ylab"
      assert len(fig.data) == 3
      assert fig.data[0].mode == "lines"
      assert fig.data[0].legendgroup == "one"
      assert fig.data[0].line.color == "red"
      assert fig.data[0].name == "oranges"
      assert fig.data[1].name == "apples"
      assert fig.data[2].name == "plantain"
      assert fig.data[2].mode == "markers"
  
      # ylabel is used for default title
      fig = plot_multivariate(
          df=df, x_col=x_col, xlabel="xlab", ylabel="ylab"
      )
      assert fig.layout.title.text == f"ylab vs xlab"
  
      # plotly style
      fig = plot_multivariate(
          df=df, x_col=x_col, y_col_style_dict="plotly"
      )
      assert [fig.data[i].name for i in range(len(fig.data))] == [
          "oranges",
          "apples",
          "bananas",
      ]
      assert fig.data[0].line.color is None
      assert fig.data[1].fill is None
  
      # auto style
      fig = plot_multivariate(
          df=df, x_col=x_col, y_col_style_dict="auto"
      )
      assert [fig.data[i].name for i in range(len(fig.data))] == [
          "apples",
          "bananas",
          "oranges",
      ]  # sorted ascending
      assert fig.data[0].line.color == "rgba(0, 145, 202, 1.0)"
      assert fig.data[1].fill is None
  
      # auto-fill style
      fig = plot_multivariate(
          df=df,
          x_col=x_col,
          y_col_style_dict="auto-fill",
          default_color="blue",
      )
      assert [fig.data[i].name for i in range(len(fig.data))] == [
          "apples",
          "bananas",
          "oranges",
      ]  # sorted ascending
      assert fig.data[0].line.color == "blue"
      assert fig.data[1].fill == "tonexty"
      assert fig.data[2].fill == "tonexty"
  
imports: import datetime
  from datetime import datetime
  from functools import partial
  import numpy
  import pandas
  import pytest
  from pandas.testing import assert_frame_equal
  from plotly.colors import DEFAULT_PLOTLY_COLORS
  from testfixtures import LogCapture
  import greykite.common.constants
  from greykite.common.evaluation import EvaluationMetricEnum
  from greykite.common.viz.timeseries_plotting import add_groupby_column
  from greykite.common.viz.timeseries_plotting import flexible_grouping_evaluation
  from greykite.common.viz.timeseries_plotting import grouping_evaluation
  from greykite.common.viz.timeseries_plotting import plot_dual_axis_figure
  from greykite.common.viz.timeseries_plotting import plot_forecast_vs_actual
  from greykite.common.viz.timeseries_plotting import plot_multivariate
  from greykite.common.viz.timeseries_plotting import plot_multivariate_grouped
  from greykite.common.viz.timeseries_plotting import plot_univariate
  from greykite.common.viz.timeseries_plotting import split_range_into_groups
label_desc: Use image node_id 1 for calling a global function with example usage: test_plot_multivariate() without return types