class DeepCover::Analyser::Branch
Constants
- SUBSET_CLASSES
Public Class Methods
human_name()
click to toggle source
# File lib/deep_cover/analyser/branch.rb, line 7 def self.human_name 'Branches' end
Public Instance Methods
node_runs(node)
click to toggle source
Calls superclass method
# File lib/deep_cover/analyser/branch.rb, line 13 def node_runs(node) runs = super if node.is_a?(Node::Branch) && covered?(runs) worst = worst_branch_runs(node) runs = worst unless covered?(worst) end runs end
results()
click to toggle source
# File lib/deep_cover/analyser/branch.rb, line 22 def results each_node.map do |node| branches_runs = node.branches.map { |jump| [jump, branch_runs(jump)] }.to_h [node, branches_runs] end.to_h end
Private Instance Methods
branch_runs(branch)
click to toggle source
# File lib/deep_cover/analyser/branch.rb, line 36 def branch_runs(branch) branch.flow_entry_count.nonzero? || source.node_runs(branch) end
worst_branch_runs(fork)
click to toggle source
# File lib/deep_cover/analyser/branch.rb, line 31 def worst_branch_runs(fork) fork.branches.map { |jump| branch_runs(jump) } .min_by { |runs| runs == 0 ? -2 : runs || -1 } end