code: def setup(self, unique, keep, dtype):
      N = 10**5
      if dtype in ["int64", "uint64"]:
          data = pd.Index(np.arange(N), dtype=dtype)
      elif dtype == "float64":
          data = pd.Index(np.random.randn(N), dtype="float64")
      elif dtype == "string":
          data = pd.Index([f"i-{i}" for i in range(N)], dtype=object)
      elif dtype == "datetime64[ns]":
          data = pd.date_range("2011-01-01", freq="h", periods=N)
      elif dtype == "datetime64[ns, tz]":
          data = pd.date_range(
              "2011-01-01", freq="h", periods=N, tz="Asia/Tokyo"
          )
      elif dtype in ["timestamp[ms][pyarrow]", "duration[s][pyarrow]"]:
          data = pd.Index(np.arange(N), dtype=dtype)
      else:
          raise NotImplementedError
      if not unique:
          data = data.repeat(5)
      self.idx = data
      # cache is_unique
      self.idx.is_unique
  
imports: from importlib import import_module
  import numpy
  import pandas
  from .pandas_vb_common import setup
label_desc: Use image node_id 1 for calling the Duplicated obj's underlying member method code with example usage: obj.setup(unique, keep, dtype) without return types