def quartile_boundaries # rubocop:disable Metrics/AbcSize
      top = scores.reject { |x| gh_outliers.include? x }.max
      range = (1..top).to_a
      range = [0] * 3 if range.empty?
      mids = (1..3).map do |q|
        index = q * range.size / 4 - 1
        range[index]
      end
      bounds = (mids + [max.score]).uniq.sort
      [0] * (5 - bounds.size) + bounds
    end
def quartile_boundaries # rubocop:disable Metrics/AbcSize
      top = scores.reject { |x| gh_outliers.include? x }.max
      range = (1..top).to_a
      range = [0] * 3 if range.empty?
      mids = (1..3).map do |q|
        index = q * range.size / 4 - 1
        range[index]
      end
      bounds = (mids + [max.score]).uniq.sort
      [0] * (5 - bounds.size) + bounds
    end
The boundaries of the quartiles
 The index represents the quartile number
 The value is the upper bound of the quartile (inclusive)