code: def testLongSaturation(self, frameSize=512, hopSize=256):
      fs = 44100
  
      signal = [0] * fs + [1] * fs + [0] * fs
  
      starts = []
      ends = []
      sd = SaturationDetector(frameSize=frameSize, hopSize=hopSize)
      for frame in FrameGenerator(
          esarr(signal),
          frameSize=frameSize,
          hopSize=hopSize,
          startFromZero=True,
      ):
          s, e = sd(frame)
          starts += list(s)
          ends += list(e)
  
      self.assertAlmostEqualVector(starts, [1.0], 1e-4)
      self.assertAlmostEqualVector(ends, [2.0], 1e-4)
  
file_path: essentia/test/src/unittests/audioproblems/test_saturationdetector.py
imports: import numpy
  from math import *
  from essentia_test import *
  from essentia import array
label_desc: Use image node_id 3 for calling the TestSaturationDetector obj's underlying member method code with example usage: obj.testLongSaturation(frameSize, hopSize) without return types