code: def test_too_many_NaN():
      # n_lags, n_forecasts = 12, 1
      config_missing = configure.MissingDataHandling(
          impute_missing=True,
          impute_linear=5,
          impute_rolling=5,
          drop_missing=False,
      )
      length = 100
      days = pd.date_range(start="2017-01-01", periods=length)
      y = np.ones(length)
      # introduce large NaN value window
      y[25:50] = np.nan
      df = pd.DataFrame({"ds": days, "y": y})
      # linear imputation and rolling avg to fill some of the missing data (but not all are filled!)
      (
          df.loc[:, "y"],
          remaining_na,
      ) = df_utils.fill_linear_then_rolling_avg(
          df["y"],
          limit_linear=config_missing.impute_linear,
          rolling=config_missing.impute_rolling,
      )
      df, _, _ = df_utils.check_dataframe(df)
      local_data_params, global_data_params = df_utils.init_data_params(
          df=df, normalize="minmax"
      )
      df = df.drop("ID", axis=1)
      df = df_utils.normalize(df, global_data_params)
      df["ID"] = "__df__"
      # Check if ValueError is thrown, if NaN values remain after auto-imputing
      with pytest.raises(ValueError):
          time_dataset.TimeDataset(
              df,
              "name",
              config_missing=config_missing,
              predict_steps=1,
              prediction_frequency=None,
          )
  
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 17 for calling a global function with example usage: test_too_many_NaN() without return types