code: def test_types(self):
      tp, fp, tn, fn, errors = note_onset_evaluation(
          DETECTIONS, ANNOTATIONS, 0.025
      )
      self.assertIsInstance(tp, np.ndarray)
      self.assertIsInstance(fp, np.ndarray)
      self.assertIsInstance(tn, np.ndarray)
      self.assertIsInstance(fn, np.ndarray)
      self.assertIsInstance(errors, np.ndarray)
      tp, fp, tn, fn, errors = note_onset_evaluation([[]], [[]], 0.025)
      self.assertIsInstance(tp, np.ndarray)
      self.assertIsInstance(fp, np.ndarray)
      self.assertIsInstance(tn, np.ndarray)
      self.assertIsInstance(fn, np.ndarray)
      self.assertIsInstance(errors, np.ndarray)
      with self.assertRaises(ValueError):
          note_onset_evaluation([], [], 0.025)
  
imports: from __future__ import absolute_import, division, print_function
  import math
  import unittest
  from madmom.evaluation.notes import *
  from .None import ANNOTATIONS_PATH, DETECTIONS_PATH
label_desc: Use image node_id 1 for calling the TestNoteOnsetEvaluationFunction obj's underlying member method code with example usage: obj.test_types() without return types