code: def test_FittableDetector(self):
      for detector in list_FittableDetector:
          # Need to call fit() before calling detect()
          with pytest.raises(ValueError):
              detector.detect(self.test)
  
          # Check if _fit_called is False
          assert not detector._fit_called
  
          with pytest.raises(ValueError):
              # fit on sequence with series that have different width
              detector.fit([self.train, self.mts_train])
  
          with pytest.raises(ValueError):
              # Input cannot be probabilistic
              detector.fit(self.probabilistic)
  
          # case1: fit on UTS
          detector1 = detector
          detector1.fit(self.train)
  
          # Check if _fit_called is True after being fitted
          assert detector1._fit_called
  
          with pytest.raises(ValueError):
              # series must be same width as series used for training
              detector1.detect(self.mts_test)
  
          # case2: fit on MTS
          detector2 = detector
          detector2.fit(self.mts_test)
  
          # Check if _fit_called is True after being fitted
          assert detector2._fit_called
  
          with pytest.raises(ValueError):
              # series must be same width as series used for training
              detector2.detect(self.train)
  
file_path: darts/darts/tests/ad/test_detectors.py
imports: from typing import Sequence
  import numpy
  import pytest
  from darts import TimeSeries
  from darts.ad.detectors.quantile_detector import QuantileDetector
  from darts.ad.detectors.threshold_detector import ThresholdDetector
label_desc: Use image node_id 4 for calling the TestADDetectors obj's underlying member method code with example usage: obj.test_FittableDetector() without return types