Sha256: 9b779bcac87d88678e664455bbefe93f3ce26156acc91deca4d553815b10d823
Contents?: true
Size: 1.55 KB
Versions: 1
Compression:
Stored size: 1.55 KB
Contents
module Bench module Utils include Logging def sort_natural_order(nocase=false) proc do |str| i = true str = str.upcase if nocase str.gsub(/\s+/, '').split(/(\d+)/).map {|x| (i = !i) ? x.to_i : x} end end def compare(name1,s1,name2,s2) r1 = diff([],name1,s1,name2,s2) r2 = diff([],name2,s2,name1,s1) r1.size > r2.size ? r1 : r2 end def diff(res,lname,lvalue,rname,rvalue,path=[]) return res if lvalue == rvalue if lvalue.is_a?(Array) and rvalue lvalue.each_index do |index| p = Array.new(path) p << index diff(res,lname,lvalue[index],rname,rvalue.at(index),p) end elsif lvalue.is_a?(Hash) and rvalue lvalue.each do |key,value| p = Array.new(path) p << key diff(res,lname,value,rname,rvalue[key],p) end else res << {:path=>path,lname=>lvalue,rname=>rvalue} end res end def compare_and_log(expected,actual,caller) if expected != actual bench_log "#{log_prefix} Verify error at: " + caller bench_log "#{log_prefix} Message diff: " compare(:expected,expected,:actual,actual).each do |diff| bench_log "#{log_prefix} Path: #{diff[:path].join('/')}" bench_log "#{log_prefix} Expected: #{diff[:expected].inspect}" bench_log "#{log_prefix} Actual: #{diff[:actual].inspect}" end 1 else 0 end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rhoconnect-3.0.6 | bench/lib/bench/utils.rb |