code: def test_tsdataset_roll_order(self):
      df = pd.DataFrame(
          {
              "datetime": np.array(
                  ["1/1/2019", "1/1/2019", "1/2/2019", "1/2/2019"]
              ),
              "value": np.array([1.9, 2.3, 2.4, 2.6]),
              "id": np.array(["00", "01", "00", "01"]),
              "extra feature1": np.array([1, 0, 3, 0]),
              "extra feature2": np.array([2, 9, 4, 2]),
          }
      )
      tsdata = TSDataset.from_pandas(
          df,
          dt_col="datetime",
          target_col="value",
          extra_feature_col=["extra feature1", "extra feature2"],
          id_col="id",
      )
      x, y = tsdata.roll(
          lookback=1, horizon=1, id_sensitive=False
      ).to_numpy()
      assert x.shape == (2, 1, 3) and y.shape == (2, 1, 1)
      assert np.array_equal(
          x, np.array([[[1.9, 1, 2]], [[2.3, 0, 9]]], dtype=np.float32)
      )
      assert np.array_equal(
          y, np.array([[[2.4]], [[2.6]]], dtype=np.float32)
      )
  
      x, y = tsdata.roll(
          lookback=1, horizon=1, id_sensitive=True
      ).to_numpy()
      assert x.shape == (1, 1, 6) and y.shape == (1, 1, 2)
      assert np.array_equal(
          x, np.array([[[1.9, 2.3, 1, 2, 0, 9]]], dtype=np.float32)
      )
      assert np.array_equal(
          y, np.array([[[2.4, 2.6]]], dtype=np.float32)
      )
  
imports: import pytest
  import numpy
  import pandas
  import random
  import tempfile
  import os
  import shutil
  from test.zoo.pipeline.utils.test_utils import ZooTestCase
  from zoo.chronos.data import TSDataset
  from pandas.testing import assert_frame_equal
  from numpy.testing import assert_array_almost_equal
label_desc: Use image node_id 8 for calling the TestTSDataset obj's underlying member method code with example usage: obj.test_tsdataset_roll_order() without return types