Sha256: f889e06a51f71dc7d5f05887d27bc7afd2fea6131d254f9ad9e9a33683283a53

Contents?: true

Size: 925 Bytes

Versions: 10

Compression:

Stored size: 925 Bytes

Contents

# -*- encoding: utf-8 -*-

module Coco

  # 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 CoverageStat
    
    def CoverageStat.remove_nil_from hits
      hits.select {|elem| not elem.nil?}
    end
    
    def CoverageStat.number_of_covered_lines hits
      hits.select {|elem| elem > 0}.size
    end
    
    def CoverageStat.coverage_percent hits
      hits = CoverageStat.remove_nil_from hits
      return 0 if hits.empty?
      one_percent = 100.0 / hits.size
      (CoverageStat.number_of_covered_lines(hits) * one_percent).to_i
    end
    
  end
  
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
coco-0.10.0 lib/coco/cover/coverage_stat.rb
coco-0.9 lib/coco/cover/coverage_stat.rb
coco-0.8 lib/coco/cover/coverage_stat.rb
coco-0.7.1 lib/coco/cover/coverage_stat.rb
coco-0.7 lib/coco/cover/coverage_stat.rb
coco-0.6 lib/coco/cover/coverage_stat.rb
coco-0.5.1 lib/coco/cover/coverage_stat.rb
coco-0.5 lib/coco/cover/coverage_stat.rb
coco-0.4.2 lib/coco/cover/coverage_stat.rb
coco-0.4.1 lib/coco/cover/coverage_stat.rb