code: def test_set_changepoint_range(self, daily_univariate_ts, backend):
      train, _ = train_test_split(
          daily_univariate_ts, daily_univariate_ts.shape[0] // 2
      )
      m = Prophet(changepoint_range=0.4, stan_backend=backend)
      history = m.setup_dataframe(train, initialize_scales=True)
      m.history = history
      m.set_changepoints()
      cp = m.changepoints_t
      assert cp.shape[0] == m.n_changepoints
      assert len(cp.shape) == 1
      assert cp.min() > 0
      cp_indx = int(np.ceil(0.4 * history.shape[0]))
      cp.max() <= history["t"].values[cp_indx]
      for out_of_range in [-0.1, 2]:
          with pytest.raises(ValueError):
              m = Prophet(
                  changepoint_range=out_of_range, stan_backend=backend
              )
  
imports: import numpy
  import pandas
  import pytest
  from prophet import Prophet
  from prophet.utilities import warm_start_params
label_desc: Use image node_id 9 for calling the TestProphetTrendComponent obj's underlying member method code with example usage: obj.test_set_changepoint_range(daily_univariate_ts, backend) without return types