code: def testRegression(self, tempotap=None):
      features = readMatrix(join(filedir(), "tempotap", "input.txt"))
      expected = readMatrix(join(filedir(), "tempotap", "output.txt"))
  
      numberFrames = 1024
  
      if not tempotap:
          tempotap = TempoTap(
              numberFrames=numberFrames, frameHop=numberFrames
          )
  
      periodEstimates = []
      phaseEstimates = []
  
      for i in range(numberFrames * 5):
          periods, phases = tempotap(features[i % len(features)])
          periodEstimates += list(periods)
          phaseEstimates += list(phases)
  
      self.assertAlmostEqualVector(periodEstimates, expected[0], 1e-4)
      self.assertAlmostEqualVector(phaseEstimates, expected[1], 1e-4)
  
file_path: essentia/test/src/unittests/rhythm/test_tempotap.py
imports: from essentia_test import *
  import math
label_desc: Use image node_id 2 for calling the TestTempoTap obj's underlying member method code with example usage: obj.testRegression(tempotap) without return types