code: def tearDown(self):
      decoder = FileDecoder(self.source)
      (
          decoder
          | self.analyzer_dissonance
          | self.analyzer_dissonance_value
      ).run()
      self.assertAlmostEqual(
          self.analyzer_dissonance.results[
              "essentia_dissonance"
          ].data_object.value.mean(),
          0.003,
          places=3,
      )
      self.assertAlmostEqual(
          self.analyzer_dissonance_value.results[
              "essentia_dissonance_value"
          ].data_object.value.mean(),
          0.109,
          places=2,
      )
  
file_path: TimeSide/tests/test_essentia_dissonance.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 3 for calling the TestEssentiaDissonance obj's underlying member method code with example usage: obj.tearDown() without return types