code: def test_tsdataset_deduplicate(self):
      df = get_ugly_ts_df()
      for _ in range(20):
          df.loc[len(df)] = df.loc[np.random.randint(0, 99)]
      assert len(df) == 120
      tsdata = TSDataset.from_pandas(
          df,
          dt_col="datetime",
          target_col="e",
          extra_feature_col=["a", "b", "c", "d"],
          id_col="id",
      )
      tsdata.deduplicate()
      assert len(tsdata.to_pandas()) == 100
      tsdata._check_basic_invariants()
  
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 14 for calling the TestTSDataset obj's underlying member method code with example usage: obj.test_tsdataset_deduplicate() without return types