code: def __init__(self, *args, **kwargs):
      super().__init__(*args, **kwargs)
      # Time series with anomalies in both train split and test split
      df = pd.read_csv(
          join(
              rootdir,
              "data",
              "synthetic_anomaly",
              "horizontal_spike_anomaly.csv",
          )
      )
      df.timestamp = pd.to_datetime(df.timestamp, unit="s")
      df = df.set_index("timestamp")
  
      # Get training split
      train = df[: -len(df) // 2]
      self.train_data = TimeSeries.from_pd(train.iloc[:, 0])
      self.train_labels = TimeSeries.from_pd(train.anomaly)
  
      # Get testing split
      test = df[-len(df) // 2 :]
      self.test_data = TimeSeries.from_pd(test.iloc[:, 0])
      self.test_labels = TimeSeries.from_pd(test.anomaly)
  
file_path: merlion/tests/evaluate/test_eval_anomaly.py
imports: import logging
  from os.path import abspath, dirname, join
  import sys
  import unittest
  import numpy
  import pandas
  from merlion.evaluate.anomaly import TSADEvaluator, TSADEvaluatorConfig, TSADMetric
  from merlion.models.anomaly.isolation_forest import IsolationForest, IsolationForestConfig
  from merlion.models.anomaly.windstats import WindStats, WindStatsConfig
  from merlion.models.ensemble.anomaly import DetectorEnsemble, DetectorEnsembleConfig, DetectorEnsembleTrainConfig
  from merlion.models.ensemble.combine import ModelSelector, Mean
  from merlion.transform.resample import TemporalResample
  from merlion.utils import TimeSeries
label_desc: Use image node_id 1 to create a new TestEvaluateAnomaly object from inherited base classes: unittest with example: obj = TestEvaluateAnomaly()