code: def test_input_data_len(self):
      sample_num = 100
      past_seq_len = 20
      dates = pd.date_range("1/1/2019", periods=sample_num)
      values = np.random.randn(sample_num)
      df = pd.DataFrame({"datetime": dates, "values": values})
      config = {
          "selected_features": json.dumps(
              [
                  "IS_AWAKE(datetime)",
                  "IS_BUSY_HOURS(datetime)",
                  "HOUR(datetime)",
              ]
          ),
          "past_seq_len": past_seq_len,
      }
      train_df, val_df, test_df = train_val_test_split(
          df, val_ratio=0.1, test_ratio=0.1, look_back=10
      )
  
      feat = TimeSequenceFeatureTransformer(
          future_seq_len=1,
          dt_col="datetime",
          target_col="values",
          drop_missing=True,
      )
      with pytest.raises(ValueError, match=r".*past sequence length.*"):
          feat.fit_transform(train_df[:20], **config)
  
      feat.fit_transform(train_df, **config)
      with pytest.raises(ValueError, match=r".*past sequence length.*"):
          feat.transform(val_df, is_train=True)
  
      with pytest.raises(ValueError, match=r".*past sequence length.*"):
          feat.transform(test_df[:-1], is_train=False)
      out_x, out_y = feat.transform(test_df, is_train=False)
      assert len(out_x) == 1
      assert out_y is None
  
imports: import pytest
  from test.zoo.pipeline.utils.test_utils import ZooTestCase
  from zoo.chronos.autots.deprecated.feature.utils import save, restore
  from zoo.chronos.autots.deprecated.feature.time_sequence import *
  from numpy.testing import assert_array_almost_equal
  import json
  import tempfile
  import shutil
  from zoo.chronos.autots.deprecated.preprocessing.utils import train_val_test_split
label_desc: Use image node_id 7 for calling the TestTimeSequenceFeature obj's underlying member method code with example usage: obj.test_input_data_len() without return types