class SimpleCov::CoverageStatistics
Holds the individual data of a coverage result.
This is uniform across coverage criteria as they all have:
-
total - how many things to cover there are (total relevant loc/branches)
-
covered - how many of the coverables are hit
-
missed - how many of the coverables are missed
-
percent - percentage as covered/missed
-
strength - average hits per/coverable (will not exist for one shot lines format)
Attributes
covered[R]
missed[R]
percent[R]
strength[R]
total[R]
Public Class Methods
from(coverage_statistics)
click to toggle source
# File lib/simplecov/coverage_statistics.rb, line 16 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
new(covered:, missed:, total_strength: 0.0)
click to toggle source
Requires only covered, missed and strength to be initialized.
Other values are computed by this class.
# File lib/simplecov/coverage_statistics.rb, line 34 def initialize(covered:, missed:, total_strength: 0.0) @covered = covered @missed = missed @total = covered + missed @percent = compute_percent(covered, missed, total) @strength = compute_strength(total_strength, total) end
Private Instance Methods
compute_percent(covered, missed, total)
click to toggle source
# File lib/simplecov/coverage_statistics.rb, line 44 def compute_percent(covered, missed, total) return 100.0 if missed.zero? covered * 100.0 / total end
compute_strength(total_strength, total)
click to toggle source
# File lib/simplecov/coverage_statistics.rb, line 50 def compute_strength(total_strength, total) return 0.0 if total.zero? total_strength.to_f / total end