code: def test_cross_validation_extra_regressors(self, ts_short, backend):
      df = ts_short.copy()
      df["extra"] = range(df.shape[0])
      df["is_conditional_week"] = np.arange(df.shape[0]) // 7 % 2
      m = Prophet(stan_backend=backend)
      m.add_seasonality(name="monthly", period=30.5, fourier_order=5)
      m.add_seasonality(
          name="conditional_weekly",
          period=7,
          fourier_order=3,
          prior_scale=2.0,
          condition_name="is_conditional_week",
      )
      m.add_regressor("extra")
      m.fit(df)
      df_cv = diagnostics.cross_validation(
          m, horizon="4 days", period="4 days", initial="135 days"
      )
      assert len(np.unique(df_cv["cutoff"])) == 2
      period = pd.Timedelta("4 days")
      dc = df_cv["cutoff"].diff()
      dc = dc[dc > pd.Timedelta(0)].min()
      assert dc >= period
      assert (df_cv["cutoff"] < df_cv["ds"]).all()
      df_merged = pd.merge(df_cv, ts_short, "left", on="ds")
      assert np.sum(
          (df_merged["y_x"] - df_merged["y_y"]) ** 2
      ) == pytest.approx(0.0)
  
imports: import datetime
  import itertools
  import numpy
  import pandas
  import pytest
  from prophet import Prophet, diagnostics
label_desc: Use image node_id 6 for calling the TestCrossValidation obj's underlying member method code with example usage: obj.test_cross_validation_extra_regressors(ts_short, backend) without return types