@@ -462,9 +462,10 @@ def interpret_silverman_kde(base_data, new_data, lower_is_better):
462462 is_improvement = None
463463 performance_intepretation = None
464464 modes = []
465+ base_intervals , base_peak_xs = find_mode_interval (x_base , y_base , base_peak_locs )
466+ new_intervals , new_peak_xs = find_mode_interval (x_new , y_new , new_peak_locs )
467+
465468 if base_mode_count == new_mode_count :
466- base_intervals , base_peak_xs = find_mode_interval (x_base , y_base , base_peak_locs )
467- new_intervals , new_peak_xs = find_mode_interval (x_new , y_new , new_peak_locs )
468469 per_mode_new = split_per_mode (new_data , new_intervals )
469470 per_mode_base = split_per_mode (base_data , base_intervals )
470471
@@ -517,6 +518,32 @@ def interpret_silverman_kde(base_data, new_data, lower_is_better):
517518 "ci_warning" : ci_warning ,
518519 }
519520 modes .append (mode_info )
521+ else :
522+ for i , interval in enumerate (base_intervals ):
523+ tup = interval
524+ if len (tup ) != 2 :
525+ return None , None , None , None , None , None
526+
527+ start , end = tup
528+ shift = 0
529+ ci_low = 0
530+ ci_high = 0
531+ median_shift_summary = (
532+ "Cannot measure shift, base mode count not equal to new mode count."
533+ )
534+ mode_name = f"Mode { i + 1 } "
535+ mode_info = {
536+ "mode_name" : mode_name ,
537+ "mode_start" : f"{ start :.2f} " if start else None ,
538+ "mode_end" : f"{ end :.2f} " if end else None ,
539+ "median_shift_summary" : median_shift_summary ,
540+ "ci_low" : ci_low ,
541+ "ci_high" : ci_high ,
542+ "shift" : shift ,
543+ "shift_summary" : performance_intepretation ,
544+ "ci_warning" : ci_warning ,
545+ }
546+ modes .append (mode_info )
520547
521548 silverman_kde = {
522549 "bandwidth" : "Silverman" ,
0 commit comments