Sha256: b370394b21fd4a599354e8f0ec085ce651e7bcf7c922f198c61c14fb399ee57e

Contents?: true

Size: 1.09 KB

Versions: 2

Compression:

Stored size: 1.09 KB

Contents

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

module Coco

  # 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.
  module CoverageStat
    extend self

    # Public: Compute the 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.
    def coverage_percent(hits)
      hits = hits.compact
      return 0 if hits.empty?
      one_percent = 100.0 / hits.size
      (number_of_covered_lines(hits) * one_percent).to_i
    end

    # Compute the total of covered lines in a hits array.
    #
    # hits - Array of Integer.
    #
    # Returns Integer.
    def number_of_covered_lines(hits)
      hits.select {|hit| hit > 0 }.size
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
coco-0.12.0 lib/coco/cover/coverage_stat.rb
coco-0.11.0 lib/coco/cover/coverage_stat.rb