code: def testRegressionStreaming(self):
      chords = ["C", "F", "C", "G", "C", "Am", "Dm", "G"]
  
      chordsGen = VectorInput(chords)
      keyGen = VectorInput(["C"])
      scaleGen = VectorInput(["major"])
  
      algo = sChordsDescriptors()
      pool = Pool()
  
      chordsGen.data >> algo.chords
      keyGen.data >> algo.key
      scaleGen.data >> algo.scale
      algo.chordsHistogram >> (pool, "hist")
      algo.chordsNumberRate >> (pool, "rate")
      algo.chordsChangesRate >> (pool, "change")
      algo.chordsKey >> (pool, "key")
      algo.chordsScale >> (pool, "scale")
  
      keyGen.push("data", "C")
      scaleGen.push("data", "major")
      run(chordsGen)
  
      expectedHist = [
          3.0 / 8.0,
          0,
          2.0 / 8.0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          0,
          1.0 / 8.0,
          1.0 / 8.0,
          1.0 / 8.0,
      ]
      self.assertEqualVector(
          pool["hist"], [hist * 100 for hist in expectedHist]
      )
      self.assertEqual(pool["rate"], 5.0 / 8.0)  # chord rate
      self.assertEqual(pool["change"], 7.0 / 8.0)  # change rate
      self.assertEqual(pool["key"], "C")  # key
      self.assertEqual(pool["scale"], "major")
  
file_path: essentia/test/src/unittests/tonal/test_chordsdescriptors.py
imports: from essentia_test import *
  from essentia.streaming import ChordsDescriptors
label_desc: Use image node_id 11 for calling the TestChordsDescriptors obj's underlying member method code with example usage: obj.testRegressionStreaming() without return types