code: def tearDown(self):
      decoder = FileDecoder(self.source)
      (decoder | self.analyzer).run()
      results = self.analyzer.results
  
      result = results.get_result_by_id(self.proc_id)
      duration = result.audio_metadata.duration
      data_duration = result.data_object.time[-1]
  
      self.assertAlmostEqual(duration, data_duration, 1)
  
file_path: TimeSide/tests/test_vamp_spectral_centroid.py
imports: import unittest
  from unit_timeside import TestRunner
  from timeside.plugins.decoder.aubio import AubioDecoder
  from timeside.core import get_processor
  from timeside.core.tools.test_samples import samples
label_desc: Use image node_id 4 for calling the TestVampSpectralCentroid obj's underlying member method code with example usage: obj.tearDown() without return types