code: def evaluate(reference_beats, estimated_beats, **kwargs):
      
  
      # Trim beat times at the beginning of the annotations
      reference_beats = util.filter_kwargs(trim_beats, reference_beats, **kwargs)
      estimated_beats = util.filter_kwargs(trim_beats, estimated_beats, **kwargs)
  
      # Now compute all the metrics
  
      scores = collections.OrderedDict()
  
      # F-Measure
      scores['F-measure'] = util.filter_kwargs(f_measure, reference_beats,
                                               estimated_beats, **kwargs)
  
      # Cemgil
      scores['Cemgil'], scores['Cemgil Best Metric Level'] = \
          util.filter_kwargs(cemgil, reference_beats, estimated_beats, **kwargs)
  
      # Goto
      scores['Goto'] = util.filter_kwargs(goto, reference_beats,
                                          estimated_beats, **kwargs)
  
      # P-Score
      scores['P-score'] = util.filter_kwargs(p_score, reference_beats,
                                             estimated_beats, **kwargs)
  
      # Continuity metrics
      (scores['Correct Metric Level Continuous'],
       scores['Correct Metric Level Total'],
       scores['Any Metric Level Continuous'],
       scores['Any Metric Level Total']) = util.filter_kwargs(continuity,
                                                              reference_beats,
                                                              estimated_beats,
                                                              **kwargs)
  
      # Information gain
      scores['Information gain'] = util.filter_kwargs(information_gain,
                                                      reference_beats,
                                                      estimated_beats,
                                                      **kwargs)
  
      return scores
docs: Compute all metrics for the given reference and estimated annotations.
  
      Examples
      --------
      >>> reference_beats = mir_eval.io.load_events('reference.txt')
      >>> estimated_beats = mir_eval.io.load_events('estimated.txt')
      >>> scores = mir_eval.beat.evaluate(reference_beats, estimated_beats)
  
      Parameters
      ----------
      reference_beats : np.ndarray
          Reference beat times, in seconds
      estimated_beats : np.ndarray
          Query beat times, in seconds
      kwargs
          Additional keyword arguments which will be passed to the
          appropriate metric or preprocessing functions.
  
      Returns
      -------
      scores : dict
          Dictionary of scores, where the key is the metric name (str) and
          the value is the (float) score achieved.