class_docstr: Test decoder stack
class_docstr_tok: ["Test","decoder","stack"]
docstr: Test decoder stack: test frames content
docstr_tok: ["Test","decoder","stack",":","test","frames","content"]
code: def testResults(self):
      "Test decoder stack: test frames content"
  
      decoder = FileDecoder(
          uri=self.source,
          start=self.start,
          duration=self.duration,
          stack=True,
      )
      level = Level()
      pipe = decoder | level
  
      pipe.run()
  
      self.assertIsInstance(pipe.frames_stack, list)
  
      results_on_file = level.results["level.rms"].data.copy()
  
      # If the pipe is used for a second run, the processed frames stored
      # in the stack are passed to the other processors
      # without decoding the audio source again.
  
      pipe.results = {}  # to be sure the previous results are deleted
      pipe.run()
  
      # to assert that the frames passed to the two analyzers are the same,
      # we check that the results of these analyzers are equivalent:
      results_on_stack = level.results["level.rms"].data
  
      self.assertEqual(results_on_stack, results_on_file)
  
file_path: TimeSide/tests/test_decoding_stack.py
imports: from __future__ import division
  from timeside.plugins.decoder.file import FileDecoder
  from timeside.plugins.analyzer.level import Level
  from timeside.core.processor import ProcessPipe
  import unittest
  from unit_timeside import TestRunner
  from timeside.core.tools.test_samples import samples
label_desc: Use image node_id 3 for calling the TestDecodingFromStack obj's underlying member method code with example usage: obj.testResults() without return types