Sha256: 723b7978c328104fafefc93960824e121f922a043ff9f6d74bd2ad3dce613b25
Contents?: true
Size: 1.08 KB
Versions: 3
Compression:
Stored size: 1.08 KB
Contents
# frozen_string_literal: true module DeepCover class Coverage class Analysis < StructWithOptions.new(:covered_codes) include Memoize memoize :analyser_map, :stat_map def analyser_map covered_codes.map do |covered_code| [covered_code, compute_analysers(covered_code)] end.to_h end def stat_map analyser_map.transform_values { |a| a.transform_values(&:stats) } end def overall return 100 if stat_map.empty? node, branch = Tools.merge(*stat_map.values, :+).values_at(:node, :branch) (node + branch).percent_covered end def self.template {node: Analyser::Node, per_char: Analyser::PerChar, branch: Analyser::Branch} end private def compute_analysers(covered_code) base = Analyser::Node.new(covered_code, **options) {node: base}.merge!( { per_char: Analyser::PerChar, branch: Analyser::Branch, }.transform_values { |klass| klass.new(base, **options) } ) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
deep-cover-core-1.1.0 | lib/deep_cover/coverage/analysis.rb |
deep-cover-core-1.0.0 | lib/deep_cover/coverage/analysis.rb |
deep-cover-core-0.8.1 | lib/deep_cover/coverage/analysis.rb |