code: def test_prophet_copy(self, data, backend):
      # These values are created except for its default values
      holiday = pd.DataFrame(
          {"ds": pd.to_datetime(["2016-12-25"]), "holiday": ["x"]}
      )
      products = itertools.product(
          ["linear", "logistic"],  # growth
          [None, pd.to_datetime(["2016-12-25"])],  # changepoints
          [3],  # n_changepoints
          [0.9],  # changepoint_range
          [True, False],  # yearly_seasonality
          [True, False],  # weekly_seasonality
          [True, False],  # daily_seasonality
          [None, holiday],  # holidays
          ["additive", "multiplicative"],  # seasonality_mode
          [1.1],  # seasonality_prior_scale
          [1.1],  # holidays_prior_scale
          [0.1],  # changepoint_prior_scale
          [100],  # mcmc_samples
          [0.9],  # interval_width
          [200],  # uncertainty_samples
      )
      # Values should be copied correctly
      for product in products:
          m1 = Prophet(*product, stan_backend=backend)
          m1.country_holidays = "US"
          m1.history = m1.setup_dataframe(
              data.copy(), initialize_scales=True
          )
          m1.set_auto_seasonalities()
          m2 = diagnostics.prophet_copy(m1)
          assert m1.growth == m2.growth
          assert m1.n_changepoints == m2.n_changepoints
          assert m1.changepoint_range == m2.changepoint_range
          if m1.changepoints is None:
              assert m1.changepoints == m2.changepoints
          else:
              assert m1.changepoints.equals(m2.changepoints)
          assert False == m2.yearly_seasonality
          assert False == m2.weekly_seasonality
          assert False == m2.daily_seasonality
          assert m1.yearly_seasonality == ("yearly" in m2.seasonalities)
          assert m1.weekly_seasonality == ("weekly" in m2.seasonalities)
          assert m1.daily_seasonality == ("daily" in m2.seasonalities)
          if m1.holidays is None:
              assert m1.holidays == m2.holidays
          else:
              assert (m1.holidays == m2.holidays).values.all()
          assert m1.country_holidays == m2.country_holidays
          assert m1.holidays_mode == m2.holidays_mode
          assert m1.seasonality_mode == m2.seasonality_mode
          assert (
              m1.seasonality_prior_scale == m2.seasonality_prior_scale
          )
          assert (
              m1.changepoint_prior_scale == m2.changepoint_prior_scale
          )
          assert m1.holidays_prior_scale == m2.holidays_prior_scale
          assert m1.mcmc_samples == m2.mcmc_samples
          assert m1.interval_width == m2.interval_width
          assert m1.uncertainty_samples == m2.uncertainty_samples
  
imports: import datetime
  import itertools
  import numpy
  import pandas
  import pytest
  from prophet import Prophet, diagnostics
label_desc: Use image node_id 2 for calling the TestProphetCopy obj's underlying member method code with example usage: obj.test_prophet_copy(data, backend) without return types