40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/test_benchmarker/test_benchmarks.rb', line 40
def self.print_results
return if @@classes.nil? || @@classes.size == 0
benchmark_attr = :real
class_benchmarks = []
@@classes.each do |test_class, obj|
obj.test_count = obj.benchmarks.size
obj.sum = obj.benchmarks.inject(0) {|sum, bmark| sum + bmark.benchmark.send(benchmark_attr)}
obj.avg = obj.sum / obj.test_count
obj.test_class = test_class
class_benchmarks << obj unless obj.benchmarks.nil? || obj.benchmarks.size == 0
end
puts "\n\n#{'=' * 27} Class Benchmark Results #{'=' * 27}"
class_benchmarks.sort {|a, b| b.avg <=> a.avg}.each_with_index do |cb, i|
puts "#{i + 1}.#{' ' * (4 - (i + 1).to_s.length)} #{format("%.3f", cb.avg)} secs avg time, #{format("%.3f", cb.sum)} secs total time, #{cb.test_count} tests for: #{cb.test_class.to_s}"
end
puts "#{'=' * 79}\n\n"
puts "\n\n#{'=' * 28} Test Benchmark Results #{'=' * 28}"
@@tests.sort {|a, b| b.benchmark.send(benchmark_attr) <=> a.benchmark.send(benchmark_attr)}.each_with_index do |t, i|
puts "#{i + 1}.#{' ' * (4 - (i + 1).to_s.length)} #{format("%.3f", t.benchmark.real)} secs total time for: #{t.test_name}"
end
puts "#{'=' * 80}\n\n"
end
|