code: def test_results(self):
      eval = ChordEvaluation(
          load_chords(join(DETECTIONS_PATH, "dummy.chords.txt")),
          load_chords(join(ANNOTATIONS_PATH, "dummy.chords")),
          name="TestEval",
      )
      self.assertAlmostEqual(eval.length, 3.9)
      self.assertAlmostEqual(eval.root, 0.8974358974358975)
      self.assertAlmostEqual(eval.majmin, 0.6410256410256411)
      self.assertAlmostEqual(eval.majminbass, 0.46153846153846156)
      self.assertAlmostEqual(eval.sevenths, 0.46153846153846156)
      self.assertAlmostEqual(eval.seventhsbass, 0.2820512820512821)
      self.assertAlmostEqual(
          eval.undersegmentation, 1.0 - 0.07692307692307692308
      )
      self.assertAlmostEqual(
          eval.oversegmentation, 1.0 - 0.41025641025641025641
      )
      self.assertAlmostEqual(
          eval.segmentation, 1.0 - 0.41025641025641025641
      )
  
imports: from __future__ import absolute_import, division, print_function
  import unittest
  from os.path import join
  from madmom.evaluation.chords import *
  from .None import ANNOTATIONS_PATH, DETECTIONS_PATH
label_desc: Use image node_id 2 for calling the TestChordEvaluationClass obj's underlying member method code with example usage: obj.test_results() without return types