code: def testClickTrack(self):
      sr = 44100
      nClicks = 5
  
      # create audio signal that represents a click track nClicks seconds
      # long, with .25s clicks starting at every second
      clickTrack = [1.0] * int(sr / 2) + [0.0] * int(sr / 2)
      clickTrack *= nClicks
      clickLocations = [i + 1.0 / 4.0 for i in range(nClicks)]
  
      gen = VectorInput(clickTrack)
      beatsLoudness = BeatsLoudness(
          beats=clickLocations,
          frequencyBands=[20, 150],
          beatWindowDuration=0.5,
          beatDuration=0.5,
      )
  
      p = Pool()
  
      gen.data >> beatsLoudness.signal
      beatsLoudness.loudness >> (p, "beats.loudness")
      beatsLoudness.loudnessBandRatio >> (p, "beats.loudnessBandRatio")
  
      run(gen)
  
      # last beat gets discarded as it cannot be completely acquired, thus
      # (nclicks-1)
      expectedLoudness = [5.22167] * (nClicks - 1)
      expectedLoudnessBandRatio = [2.07204e-13] * (nClicks - 1)
  
      self.assertAlmostEqualVector(
          p["beats.loudness"], expectedLoudness, 1e-5
      )
      self.assertAlmostEqualVector(
          p["beats.loudnessBandRatio"], expectedLoudnessBandRatio, 2e-2
      )
  
file_path: essentia/test/src/unittests/rhythm/test_beatsloudness_streaming.py
imports: from essentia_test import *
  from essentia.streaming import BeatsLoudness, MonoLoader, RhythmExtractor
label_desc: Use image node_id 4 for calling the TestBeatsLoudness obj's underlying member method code with example usage: obj.testClickTrack() without return types