code: def test_roll_timeseries_dataframe(self):
      x, y = roll_timeseries_dataframe(
          self.easy_data,
          None,
          lookback=self.lookback,
          horizon=[1, 3],
          feature_col=["A"],
          target_col=["B"],
      )
      assert x.shape == (8 - self.lookback, self.lookback, 2)
      assert y.shape == (8 - self.lookback, 2, 1)
  
      x, y = roll_timeseries_dataframe(
          self.easy_data,
          None,
          lookback=self.lookback,
          horizon=4,
          feature_col=["A", "C"],
          target_col=["B"],
      )
      assert x.shape == (7 - self.lookback, self.lookback, 3)
      assert y.shape == (7 - self.lookback, 4, 1)
  
      x, y = roll_timeseries_dataframe(
          self.easy_data,
          None,
          lookback=2,
          horizon=0,
          feature_col=[],
          target_col=["A"],
      )
      assert x.shape == (9, 2, 1)
      assert y is None
  
      self.easy_data["A"][0] = None
      x, y = roll_timeseries_dataframe(
          self.easy_data,
          None,
          lookback=2,
          horizon=0,
          feature_col=[],
          target_col=["A"],
      )
      assert x.shape == (8, 2, 1)
      assert y is None
  
      x, y = roll_timeseries_dataframe(
          self.easy_data,
          None,
          lookback=2,
          horizon=2,
          feature_col=["C"],
          target_col=["A"],
      )
      assert x.shape == (6, 2, 2)
      assert y.shape == (6, 2, 1)
  
      x, y = roll_timeseries_dataframe(
          self.easy_data,
          None,
          lookback=2,
          horizon=2,
          feature_col=["A"],
          target_col=["B", "C"],
      )
      assert x.shape == (6, 2, 3)
      assert y.shape == (6, 2, 2)
  
file_path: BigDL/python/chronos/test/bigdl/chronos/data/utils/test_roll.py
imports: import pytest
  import pandas
  import numpy
  import random
  from unittest import TestCase
  from bigdl.chronos.data.utils.roll import roll_timeseries_dataframe
  from ...None import op_torch, op_tf2
label_desc: Use image node_id 3 for calling the TestRollTimeSeries obj's underlying member method code with example usage: obj.test_roll_timeseries_dataframe() without return types