Module: Coco::CoverageStat
- Defined in:
- lib/coco/cover/coverage_stat.rb
Overview
Public: Give statistics about an array of lines hit.
An “array of lines hit” is an array of integers, possibly nil. Such array is obtain from Coverage.result.
Each integer represent the state of a source line:
-
nil: source line will never be reached (like comments).
-
0: source line could be reached, but was not.
-
1 and above: number of time the source line has been reached.
Class Method Summary collapse
-
.coverage_percent(hits) ⇒ Object
Public: Compute the integer percentage of code coverage for a file.
-
.number_of_covered_lines(hits) ⇒ Object
Compute the total of covered lines in a hits array.
-
.real_percent(hits) ⇒ Object
Public: Compute the decimal percentage of code coverage for a file.
Class Method Details
.coverage_percent(hits) ⇒ Object
Public: Compute the integer percentage of code coverage for a file. The file is represented by an array of hits.
hits - Array of Integer.
Returns a Integer rounded percentage of coverage.
36 37 38 |
# File 'lib/coco/cover/coverage_stat.rb', line 36 def self.coverage_percent(hits) real_percent(hits).round end |
.number_of_covered_lines(hits) ⇒ Object
Compute the total of covered lines in a hits array.
hits - Array of Integer.
Returns Integer.
46 47 48 |
# File 'lib/coco/cover/coverage_stat.rb', line 46 def self.number_of_covered_lines(hits) hits.select { |hit| hit > 0 }.size end |
.real_percent(hits) ⇒ Object
Public: Compute the decimal percentage of code coverage for a file. The file is represented by an array of hits.
hits - Array of Integer.
Returns a Float percentage of coverage.
22 23 24 25 26 27 |
# File 'lib/coco/cover/coverage_stat.rb', line 22 def self.real_percent(hits) hits = hits.compact return 0 if hits.empty? one_percent = 100.0 / hits.size number_of_covered_lines(hits) * one_percent end |