class SimpleCov::CoverageStatistics

def self.from(coverage_statistics)

def self.from(coverage_statistics)
  sum_covered, sum_missed, sum_total_strength =
    coverage_statistics.reduce([0, 0, 0.0]) do |(covered, missed, total_strength), file_coverage_statistics|
      [
        covered + file_coverage_statistics.covered,
        missed + file_coverage_statistics.missed,
        # gotta remultiply with loc because files have different strength and loc
        # giving them a different "weight" in total
        total_strength + (file_coverage_statistics.strength * file_coverage_statistics.total)
      ]
    end
  new(covered: sum_covered, missed: sum_missed, total_strength: sum_total_strength)
end