Class: Evilution::Result::Summary

Inherits:
Object
  • Object
show all
Defined in:
lib/evilution/result/summary.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#durationObject (readonly)

Returns the value of attribute duration.



6
7
8
# File 'lib/evilution/result/summary.rb', line 6

def duration
  @duration
end

#resultsObject (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

#equivalentObject



43
44
45
# File 'lib/evilution/result/summary.rb', line 43

def equivalent
  results.count(&:equivalent?)
end

#equivalent_resultsObject



70
71
72
# File 'lib/evilution/result/summary.rb', line 70

def equivalent_results
  results.select(&:equivalent?)
end

#errorsObject



35
36
37
# File 'lib/evilution/result/summary.rb', line 35

def errors
  results.count(&:error?)
end

#killedObject



23
24
25
# File 'lib/evilution/result/summary.rb', line 23

def killed
  results.count(&:killed?)
end

#killed_resultsObject



62
63
64
# File 'lib/evilution/result/summary.rb', line 62

def killed_results
  results.select(&:killed?)
end

#neutralObject



39
40
41
# File 'lib/evilution/result/summary.rb', line 39

def neutral
  results.count(&:neutral?)
end

#neutral_resultsObject



66
67
68
# File 'lib/evilution/result/summary.rb', line 66

def neutral_results
  results.select(&:neutral?)
end

#peak_memory_mbObject



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

#scoreObject



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

Returns:

  • (Boolean)


54
55
56
# File 'lib/evilution/result/summary.rb', line 54

def success?(min_score: 1.0)
  score >= min_score
end

#survivedObject



27
28
29
# File 'lib/evilution/result/summary.rb', line 27

def survived
  results.count(&:survived?)
end

#survived_resultsObject



58
59
60
# File 'lib/evilution/result/summary.rb', line 58

def survived_results
  results.select(&:survived?)
end

#timed_outObject



31
32
33
# File 'lib/evilution/result/summary.rb', line 31

def timed_out
  results.count(&:timeout?)
end

#totalObject



19
20
21
# File 'lib/evilution/result/summary.rb', line 19

def total
  results.length
end

#truncated?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/evilution/result/summary.rb', line 15

def truncated?
  @truncated
end