class BenchmarkDriver::Output::Simple

def humanize(value)

def humanize(value)
  return value unless @humanize
  if BenchmarkDriver::Result::ERROR.equal?(value)
    return " %#{NAME_LENGTH}s" % 'ERROR'
  elsif value == 0.0
    return " %#{NAME_LENGTH}.3f" % 0.0
  elsif value < 0
    raise ArgumentError.new("Negative value: #{value.inspect}")
  end
  scale = (Math.log10(value) / 3).to_i
  prefix = "%#{NAME_LENGTH}.3f" % (value.to_f / (1000 ** scale))
  suffix =
    case scale
    when 1; 'k'
    when 2; 'M'
    when 3; 'G'
    when 4; 'T'
    when 5; 'Q'
    else # < 1000 or > 10^15, no scale or suffix
      return " #{prefix}"
    end
  "#{prefix}#{suffix}"
end