Class: Evilution::Result::Summary
- Inherits:
-
Object
- Object
- Evilution::Result::Summary
- Defined in:
- lib/evilution/result/summary.rb
Instance Attribute Summary collapse
-
#duration ⇒ Object
readonly
Returns the value of attribute duration.
-
#results ⇒ Object
readonly
Returns the value of attribute results.
Instance Method Summary collapse
- #equivalent ⇒ Object
- #equivalent_results ⇒ Object
- #errors ⇒ Object
-
#initialize(results:, duration: 0.0, truncated: false) ⇒ Summary
constructor
A new instance of Summary.
- #killed ⇒ Object
- #killed_results ⇒ 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) ⇒ Summary
Returns a new instance of Summary.
8 9 10 11 12 13 |
# File 'lib/evilution/result/summary.rb', line 8 def initialize(results:, duration: 0.0, truncated: false) @results = results @duration = duration @truncated = truncated freeze end |
Instance Attribute Details
#duration ⇒ Object (readonly)
Returns the value of attribute duration.
6 7 8 |
# File 'lib/evilution/result/summary.rb', line 6 def duration @duration end |
#results ⇒ Object (readonly)
Returns the value of attribute results.
6 7 8 |
# File 'lib/evilution/result/summary.rb', line 6 def results @results end |
Instance Method Details
#equivalent ⇒ Object
43 44 45 |
# File 'lib/evilution/result/summary.rb', line 43 def equivalent results.count(&:equivalent?) end |
#equivalent_results ⇒ Object
70 71 72 |
# File 'lib/evilution/result/summary.rb', line 70 def equivalent_results results.select(&:equivalent?) end |
#errors ⇒ Object
35 36 37 |
# File 'lib/evilution/result/summary.rb', line 35 def errors results.count(&:error?) end |
#killed ⇒ Object
23 24 25 |
# File 'lib/evilution/result/summary.rb', line 23 def killed results.count(&:killed?) end |
#killed_results ⇒ Object
62 63 64 |
# File 'lib/evilution/result/summary.rb', line 62 def killed_results results.select(&:killed?) end |
#neutral ⇒ Object
39 40 41 |
# File 'lib/evilution/result/summary.rb', line 39 def neutral results.count(&:neutral?) end |
#neutral_results ⇒ Object
66 67 68 |
# File 'lib/evilution/result/summary.rb', line 66 def neutral_results results.select(&:neutral?) end |
#peak_memory_mb ⇒ Object
74 75 76 77 78 79 80 81 82 83 |
# File 'lib/evilution/result/summary.rb', line 74 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
47 48 49 50 51 52 |
# File 'lib/evilution/result/summary.rb', line 47 def score denominator = total - errors - neutral - equivalent return 0.0 if denominator.zero? killed.to_f / denominator end |
#success?(min_score: 1.0) ⇒ Boolean
54 55 56 |
# File 'lib/evilution/result/summary.rb', line 54 def success?(min_score: 1.0) score >= min_score end |
#survived ⇒ Object
27 28 29 |
# File 'lib/evilution/result/summary.rb', line 27 def survived results.count(&:survived?) end |
#survived_results ⇒ Object
58 59 60 |
# File 'lib/evilution/result/summary.rb', line 58 def survived_results results.select(&:survived?) end |
#timed_out ⇒ Object
31 32 33 |
# File 'lib/evilution/result/summary.rb', line 31 def timed_out results.count(&:timeout?) end |
#total ⇒ Object
19 20 21 |
# File 'lib/evilution/result/summary.rb', line 19 def total results.length end |
#truncated? ⇒ Boolean
15 16 17 |
# File 'lib/evilution/result/summary.rb', line 15 def truncated? @truncated end |