benchmark_driver-output-gruff 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ea4dd89d1d465b1d6c12e47132d2e3a5dd6e4d1
4
- data.tar.gz: 4d7ebef3ee1718032b6c8de4f9e8d6a406232066
3
+ metadata.gz: e5e7e4f7317c05682b7d36bbfec1809c8112c254
4
+ data.tar.gz: 675d51dfcbb37d8e0097a92d027674e7fd845f01
5
5
  SHA512:
6
- metadata.gz: c48a3fe0653fb56f3ef914ef024984d99342b9bf3ca04e0a990e3e7d0d8edd4e8162c4e57da5bda47997bb4c87117d58f0d98815045f33a6cfd2372f0362d5cf
7
- data.tar.gz: 6176005cf5c2b9b2c1947f2ca59e0fc6645e779c61567a6270c3eaf225127c1016d786f04553ca576f339b161e7b401d46534640c949bac6916cda00a283f218
6
+ metadata.gz: 3bd7f956359aeab3db8e9acf958a24de882d4e009ced79b07824e1dde576e38de5784feaf5332b2fb3e8d94bd5c7c1b6fb78bec02ffcd95b7dc59e6067a51be0
7
+ data.tar.gz: c2c6ed77ea7ee42af440bee67efaf6cf2c5fc0b50b67172d93b648c4d63035b990551030baee37dd9a774b42ef4482bc2e07e531615b664b131f8edfdc3a79c8
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "benchmark_driver-output-gruff"
7
- spec.version = "0.2.0"
7
+ spec.version = "0.3.0"
8
8
  spec.authors = ["Takashi Kokubun"]
9
9
  spec.email = ["takashikkbn@gmail.com"]
10
10
 
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_dependency "benchmark_driver", ">= 0.11.1"
23
+ spec.add_dependency "benchmark_driver", ">= 0.12.0"
24
24
  spec.add_dependency "gruff"
25
25
  spec.add_development_dependency "bundler", "~> 1.16"
26
26
  spec.add_development_dependency "rake", "~> 10.0"
@@ -4,15 +4,17 @@ require 'benchmark_driver'
4
4
  class BenchmarkDriver::Output::Gruff < BenchmarkDriver::BulkOutput
5
5
  GRAPH_PATH = 'graph.png'
6
6
 
7
- # @param [Array<String>] job_names
8
- # @param [Array<String>] context_names
9
- def initialize(job_names:, context_names:)
10
- @context_names = context_names
7
+ # @param [Array<BenchmarkDriver::Metric>] metrics
8
+ # @param [Array<BenchmarkDriver::Job>] jobs
9
+ # @param [Array<BenchmarkDriver::Context>] contexts
10
+ def initialize(contexts:, **)
11
+ super
12
+ @contexts = contexts
11
13
  end
12
14
 
13
15
  # @param [Hash{ BenchmarkDriver::Job => Hash{ BenchmarkDriver::Context => { BenchmarkDriver::Metric => Float } } }] result
14
16
  # @param [Array<BenchmarkDriver::Metric>] metrics
15
- def bulk_output(result:, metrics:)
17
+ def bulk_output(job_context_result:, metrics:)
16
18
  print "rendering graph..."
17
19
  g = Gruff::SideBar.new
18
20
  g.theme = {
@@ -26,21 +28,20 @@ class BenchmarkDriver::Output::Gruff < BenchmarkDriver::BulkOutput
26
28
  g.legend_font_size = 10.0
27
29
  g.marker_font_size = 14.0
28
30
  g.minimum_value = 0
29
- g.maximum_value = (result.values.map(&:values).flatten.map(&:values).flatten.max * 1.2).to_i
30
- if result.keys.size == 1
31
+ results = job_context_result.values.map(&:values).flatten
32
+ g.maximum_value = (results.map(&:values).map(&:values).flatten.max * 1.2).to_i
33
+ if job_context_result.keys.size == 1
31
34
  # Use Ruby version for base axis
32
- job = result.keys.first
33
- g.labels = Hash[result[job].keys.map.with_index { |context, index| [index, context.name] } ]
34
- g.data job.name, result[job].map { |_, metric_value| metric_value[metric] }
35
+ job = job_context_result.keys.first
36
+ g.labels = Hash[job_context_result[job].keys.map.with_index { |context, index| [index, context.name] }]
37
+ g.data job.name, job_context_result[job].values.map { |result| result.values.fetch(metric) }
35
38
  else
36
39
  # Use benchmark name for base axis, use different colors for different Ruby versions
37
- jobs = result.keys
40
+ jobs = job_context_result.keys
38
41
  g.labels = Hash[jobs.map.with_index { |job, index| [index, job.name] }]
39
- @context_names.each do |context_name|
40
- context = @result[jobs.first].keys.find { |c| c.name == context_name }
42
+ @contexts.each do |context|
41
43
  g.data context.executable.description, jobs.map { |job|
42
- _, metric_value = @result[job].find { |context, _| context.name == context_name }
43
- metric_value[metric]
44
+ job_context_result[job][context].values.fetch(metric)
44
45
  }
45
46
  end
46
47
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: benchmark_driver-output-gruff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.11.1
19
+ version: 0.12.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.11.1
26
+ version: 0.12.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: gruff
29
29
  requirement: !ruby/object:Gem::Requirement