code: def combination_tests_for_df(df):
      lookback = random.randint(1, 20)
  
      horizon_tests = [
          random.randint(1, 10),  # train & horizon is int
          [1, 4, 16],  # train & horizon is list of ints
          0,  # test
      ]
      # todo: add tests for multiple targets and feature_num > 1
      feature_num_tests = [0, 1]
  
      for horizon in horizon_tests:
          for feature_num in feature_num_tests:
              TestRollDataset.assert_equal_with_tsdataset(
                  df=df,
                  horizon=horizon,
                  lookback=lookback,
                  feature_num=feature_num,
              )
  
file_path: BigDL/python/chronos/test/bigdl/chronos/data/utils/test_roll_dataset.py
imports: import pytest
  import numpy
  import pandas
  import random
  from bigdl.chronos.data import TSDataset
  from bigdl.chronos.utils import LazyImport
  from ...None import op_torch
label_desc: Use image node_id 2 for calling the TestRollDataset obj's underlying member method code with example usage: obj.combination_tests_for_df(df) without return types