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