code: def test_tsppl_quantize_input_data(self):
      tsppl_tcn = TSPipeline.load(
          os.path.join(self.resource_path, "tsppl_ckpt/tcn_tsppl_ckpt")
      )
      config = tsppl_tcn._best_config
      # tuple input
      calib_x = np.random.randn(
          1000, config["past_seq_len"], config["input_feature_num"]
      ).astype(np.float32)
      calib_y = np.random.randn(
          1000, config["future_seq_len"], config["output_feature_num"]
      ).astype(np.float32)
      tsppl_tcn.quantize(calib_data=(calib_x, calib_y))
  
      with pytest.raises(RuntimeError):
          tsppl_tcn.quantize(
              calib_data=(calib_x, calib_y),
              metric="smape",
              approach="dynamic",
          )
      with pytest.raises(RuntimeError):
          tsppl_tcn.quantize(
              calib_data=None, metric="smape", approach="static"
          )
  
imports: import numpy
  from unittest import TestCase
  import pytest
  from bigdl.chronos.utils import LazyImport
  import os
  import pandas
  import numpy
  from bigdl.chronos.data import TSDataset
  from ..None import op_torch, op_inference
label_desc: Use image node_id 8 for calling the TestTSPipeline obj's underlying member method code with example usage: obj.test_tsppl_quantize_input_data() without return types