code: def test_cross_validation_logistic_or_flat_growth(
      self, growth, ts_short, backend
  ):
      df = ts_short.copy()
      if growth == "logistic":
          df["cap"] = 40
      m = Prophet(growth=growth, stan_backend=backend).fit(df)
      df_cv = diagnostics.cross_validation(
          m, horizon="1 days", period="1 days", initial="140 days"
      )
      assert len(np.unique(df_cv["cutoff"])) == 2
      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 5 for calling the TestCrossValidation obj's underlying member method code with example usage: obj.test_cross_validation_logistic_or_flat_growth(growth, ts_short, backend) without return types