class Rcov::CallSiteAnalyzer

def compute_raw_data_difference(first, last)

def compute_raw_data_difference(first, last)
  difference = {}
  default = Hash.new(0)
  callsites1, defsites1 = *first
  callsites2, defsites2 = *last
  callsites2.each_pair do |(klass, method), hash|
    old_hash = callsites1[[klass, method]] || default
    hash.each_pair do |callsite, count|
      diff = hash[callsite] - (old_hash[callsite] || 0)
      if diff > 0
        difference[[klass, method]] ||= {}
        difference[[klass, method]][callsite] = diff
      end
    end
  end
  [difference, defsites1.update(defsites2)]
end