code: def test_reduce_to_tetrads(self):
      true_red_wo_bass = chords(
          [
              "N",
              "A:min",
              "A:min7",
              "F:dim",
              "F:maj",
              "C:maj",
              "G:maj7",
              "G:aug",
          ]
      )
      reduced_wo_bass = reduce_to_tetrads(
          self.det["chord"], keep_bass=False
      )
      self.assertTrue((reduced_wo_bass == true_red_wo_bass).all())
  
      reduced_w_bass = reduce_to_tetrads(
          self.det["chord"], keep_bass=True
      )
      self.assertTrue((reduced_w_bass == self.det["chord"]).all())
  
      # test some further mappings
      src = chords(["A:maj9", "Cb:9", "E:min9/9", "E:min9/b7"])
      trg = chords(["A:maj7", "Cb:7", "E:min7", "E:min7/b7"])
      self.assertTrue(
          (reduce_to_tetrads(src, keep_bass=True) == trg).all()
      )
  
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 12 for calling the TestChordEvaluation obj's underlying member method code with example usage: obj.test_reduce_to_tetrads() without return types