code: def test_results(self):
      # empty mean evaluation
      e = TempoMeanEvaluation([])
      self.assertTrue(math.isnan(e.pscore))
      self.assertTrue(math.isnan(e.any))
      self.assertTrue(math.isnan(e.all))
      self.assertTrue(math.isnan(e.acc1))
      self.assertTrue(math.isnan(e.acc2))
      self.assertEqual(len(e), 0)
      # mean evaluation with empty evaluation
      e1 = TempoEvaluation([], [])
      e = TempoMeanEvaluation([e1])
      self.assertEqual(e.pscore, 1)
      self.assertEqual(e.any, 1)
      self.assertEqual(e.all, 1)
      self.assertEqual(e.acc1, 1)
      self.assertEqual(e.acc2, 1)
      self.assertEqual(len(e), 1)
      # mean evaluation of empty and real evaluation
      e2 = TempoEvaluation([120, 60], [[60, 0.7], [30, 0.3]])
      e = TempoMeanEvaluation([e1, e2])
      self.assertEqual(e.pscore, (1 + 0.7) / 2.0)
      self.assertEqual(e.any, (1 + 1) / 2.0)
      self.assertEqual(e.all, (1 + 0) / 2.0)
      self.assertEqual(e.acc1, (1 + 0) / 2.0)
      self.assertEqual(e.acc2, (1 + 1.0) / 2.0)
      self.assertEqual(len(e), 2)
  
imports: from __future__ import absolute_import, division, print_function
  import math
  import unittest
  from madmom.evaluation.tempo import *
  from .None import ANNOTATIONS_PATH, DETECTIONS_PATH
label_desc: Use image node_id 2 for calling the TestMeanTempoEvaluationClass obj's underlying member method code with example usage: obj.test_results() without return types