code: def test_double_crossvalidation():
      len_df = 100
      folds_val, folds_test = df_utils.double_crossvalidation_split_df(
          df=pd.DataFrame(
              {
                  "ds": pd.date_range(
                      start="2017-01-01", periods=len_df
                  ),
                  "y": np.arange(len_df),
              }
          ),
          n_lags=0,
          n_forecasts=1,
          k=3,
          valid_pct=0.3,
          test_pct=0.15,
      )
      train_folds_len1 = []
      val_folds_len1 = []
      for f_train, f_val in folds_val:
          train_folds_len1.append(len(f_train))
          val_folds_len1.append(len(f_val))
      train_folds_len2 = []
      val_folds_len2 = []
      for f_train, f_val in folds_test:
          train_folds_len2.append(len(f_train))
          val_folds_len2.append(len(f_val))
      assert train_folds_len1[-1] == 75
      assert train_folds_len2[0] == 85
      assert val_folds_len1[0] == 10
      assert val_folds_len2[0] == 5
  
      m = NeuralProphet(
          epochs=EPOCHS,
          batch_size=BATCH_SIZE,
          learning_rate=LR,
          n_lags=2,
      )
      folds_val, folds_test = m.double_crossvalidation_split_df(
          df=pd.DataFrame(
              {
                  "ds": pd.date_range(
                      start="2017-01-01", periods=len_df
                  ),
                  "y": np.arange(len_df),
              }
          ),
          k=3,
          valid_pct=0.3,
          test_pct=0.15,
      )
      train_folds_len1 = []
      val_folds_len1 = []
      for f_train, f_val in folds_val:
          train_folds_len1.append(len(f_train))
          val_folds_len1.append(len(f_val))
      train_folds_len2 = []
      val_folds_len2 = []
      for f_train, f_val in folds_test:
          train_folds_len2.append(len(f_train))
          val_folds_len2.append(len(f_val))
      assert train_folds_len1[-1] == 78
      assert train_folds_len2[0] == 88
      assert val_folds_len1[0] == 12
      assert val_folds_len2[0] == 6
  
      # Raise not implemented error as double_crossvalidation is not compatible with many time series
      with pytest.raises(NotImplementedError):
          df = pd.DataFrame(
              {
                  "ds": pd.date_range(
                      start="2017-01-01", periods=len_df
                  ),
                  "y": np.arange(len_df),
              }
          )
          df1 = df.copy(deep=True)
          df1["ID"] = "df1"
          df2 = df.copy(deep=True)
          df2["ID"] = "df2"
          folds_val, folds_test = m.double_crossvalidation_split_df(
              pd.concat((df1, df2)),
              k=3,
              valid_pct=0.3,
              test_pct=0.15,
          )
  
imports: import logging
  import os
  import pathlib
  import matplotlib.pyplot
  import numpy
  import pandas
  import pytest
  from torch.utils.data import DataLoader
  from neuralprophet import NeuralProphet, configure, df_utils, time_dataset
  from neuralprophet.data.process import _create_dataset, _handle_missing_data
  from neuralprophet.data.transform import _normalize
label_desc: Use image node_id 10 for calling a global function with example usage: test_double_crossvalidation() without return types