module BenchmarkDriver::Repeater

def median_result(values, rest_on_average)

def median_result(values, rest_on_average)
  case values.first
  when Numeric then
    median_result values
  when Array then
    case rest_on_average
    when :first
      rest = values.first[1..-1]
      median = median_result_i(values.map(&:first))
      [median, *rest]
    when :average
      values.first.size.times.map do |i|
        median_result_i(values.map {|j| j[i] })
      end
    else
      raise "unexpected rest_on_average #{rest_on_average.inspect}"
    end
  else
    raise "unexpected values #{values.class}"
  end
end