Class: Evilution::Result::Summary
- Inherits:
-
Object
- Object
- Evilution::Result::Summary
- Defined in:
- lib/evilution/result/summary.rb
Instance Attribute Summary collapse
-
#disabled_mutations ⇒ Object
readonly
Returns the value of attribute disabled_mutations.
-
#duration ⇒ Object
readonly
Returns the value of attribute duration.
-
#results ⇒ Object
readonly
Returns the value of attribute results.
-
#skipped ⇒ Object
readonly
Returns the value of attribute skipped.
Instance Method Summary collapse
- #coverage_gaps ⇒ Object
- #efficiency ⇒ Object
- #equivalent ⇒ Object
- #equivalent_results ⇒ Object
- #errors ⇒ Object
-
#initialize(results:, duration: 0.0, truncated: false, skipped: 0, disabled_mutations: []) ⇒ Summary
constructor
A new instance of Summary.
- #killed ⇒ Object
- #killed_results ⇒ Object
- #killtime ⇒ Object
- #mutations_per_second ⇒ Object
- #neutral ⇒ Object
- #neutral_results ⇒ Object
- #peak_memory_mb ⇒ Object
- #score ⇒ Object
- #success?(min_score: 1.0) ⇒ Boolean
- #survived ⇒ Object
- #survived_results ⇒ Object
- #timed_out ⇒ Object
- #total ⇒ Object
- #truncated? ⇒ Boolean
Constructor Details
#initialize(results:, duration: 0.0, truncated: false, skipped: 0, disabled_mutations: []) ⇒ Summary
Returns a new instance of Summary.
9 10 11 12 13 14 15 16 |
# File 'lib/evilution/result/summary.rb', line 9 def initialize(results:, duration: 0.0, truncated: false, skipped: 0, disabled_mutations: []) @results = results @duration = duration @truncated = truncated @skipped = skipped @disabled_mutations = disabled_mutations freeze end |
Instance Attribute Details
#disabled_mutations ⇒ Object (readonly)
Returns the value of attribute disabled_mutations.
7 8 9 |
# File 'lib/evilution/result/summary.rb', line 7 def disabled_mutations @disabled_mutations end |
#duration ⇒ Object (readonly)
Returns the value of attribute duration.
7 8 9 |
# File 'lib/evilution/result/summary.rb', line 7 def duration @duration end |
#results ⇒ Object (readonly)
Returns the value of attribute results.
7 8 9 |
# File 'lib/evilution/result/summary.rb', line 7 def results @results end |
#skipped ⇒ Object (readonly)
Returns the value of attribute skipped.
7 8 9 |
# File 'lib/evilution/result/summary.rb', line 7 def skipped @skipped end |
Instance Method Details
#coverage_gaps ⇒ Object
77 78 79 |
# File 'lib/evilution/result/summary.rb', line 77 def coverage_gaps Evilution::Result::CoverageGapGrouper.new.call(survived_results) end |
#efficiency ⇒ Object
85 86 87 88 89 |
# File 'lib/evilution/result/summary.rb', line 85 def efficiency return 0.0 if duration.zero? killtime / duration end |
#equivalent ⇒ Object
46 47 48 |
# File 'lib/evilution/result/summary.rb', line 46 def equivalent results.count(&:equivalent?) end |
#equivalent_results ⇒ Object
73 74 75 |
# File 'lib/evilution/result/summary.rb', line 73 def equivalent_results results.select(&:equivalent?) end |
#errors ⇒ Object
38 39 40 |
# File 'lib/evilution/result/summary.rb', line 38 def errors results.count(&:error?) end |
#killed ⇒ Object
26 27 28 |
# File 'lib/evilution/result/summary.rb', line 26 def killed results.count(&:killed?) end |
#killed_results ⇒ Object
65 66 67 |
# File 'lib/evilution/result/summary.rb', line 65 def killed_results results.select(&:killed?) end |
#killtime ⇒ Object
81 82 83 |
# File 'lib/evilution/result/summary.rb', line 81 def killtime results.sum(0.0, &:duration) end |
#mutations_per_second ⇒ Object
91 92 93 94 95 |
# File 'lib/evilution/result/summary.rb', line 91 def mutations_per_second return 0.0 if duration.zero? total.to_f / duration end |
#neutral ⇒ Object
42 43 44 |
# File 'lib/evilution/result/summary.rb', line 42 def neutral results.count(&:neutral?) end |
#neutral_results ⇒ Object
69 70 71 |
# File 'lib/evilution/result/summary.rb', line 69 def neutral_results results.select(&:neutral?) end |
#peak_memory_mb ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/evilution/result/summary.rb', line 97 def peak_memory_mb max_rss = nil results.each do |result| kb = result.child_rss_kb next unless kb max_rss = kb if max_rss.nil? || kb > max_rss end max_rss && (max_rss / 1024.0) end |
#score ⇒ Object
50 51 52 53 54 55 |
# File 'lib/evilution/result/summary.rb', line 50 def score denominator = total - errors - neutral - equivalent return 0.0 if denominator.zero? killed.to_f / denominator end |
#success?(min_score: 1.0) ⇒ Boolean
57 58 59 |
# File 'lib/evilution/result/summary.rb', line 57 def success?(min_score: 1.0) score >= min_score end |
#survived ⇒ Object
30 31 32 |
# File 'lib/evilution/result/summary.rb', line 30 def survived results.count(&:survived?) end |
#survived_results ⇒ Object
61 62 63 |
# File 'lib/evilution/result/summary.rb', line 61 def survived_results results.select(&:survived?) end |
#timed_out ⇒ Object
34 35 36 |
# File 'lib/evilution/result/summary.rb', line 34 def timed_out results.count(&:timeout?) end |
#total ⇒ Object
22 23 24 |
# File 'lib/evilution/result/summary.rb', line 22 def total results.length end |
#truncated? ⇒ Boolean
18 19 20 |
# File 'lib/evilution/result/summary.rb', line 18 def truncated? @truncated end |