benchmark-ips 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 10d2721496232fa66554efc54374e96a44bb8b46
4
- data.tar.gz: 0eaef49055af4e91846cf61ccd8eafb4c2c779cc
3
+ metadata.gz: ac378dafa55fa25f223374c352d9fce265a73a1d
4
+ data.tar.gz: edcbad0a3ed40b69793e18b52b40b4d2d73b72fd
5
5
  SHA512:
6
- metadata.gz: 5a6eb4ecc46877f3b73836d2b1999b1ed895bc553a5a6baf2470ad3225343b44bc58574eaae6446f3ae658ec383ec7cf61059283df1d08d1cf1395ba64d9895f
7
- data.tar.gz: ccf501ab18c3243bcafc36fc891d8d9cb1b083a317f9743ae6863cc0f956cde0c3f01cadd1ad73430a59a17d642acb6be0c25827ad12b398b0677f46b311e375
6
+ metadata.gz: 427e884910dc92a0e50ceb825ff36770b70c0dcee9088f56d3e090867986f6c8d12d176c7a671d7b964f15c12c2ae6edd4c87b532c6c68bdd351c0508c03fd90
7
+ data.tar.gz: 3db5f1f4445eb0b2c4985633a197abf58be95f9a2bb01282bda329c2880916e1c25c5cd0ec94b2a17adbdc667e3e8829dd46fa428ef13dc41cf3327136564d89
@@ -1,3 +1,17 @@
1
+ === 2.3.0 / 2015-07-20
2
+
3
+ * 2 minor features:
4
+ * Support keyword arguments
5
+ * Allow any datatype for labels (use #to_s conversion)
6
+
7
+ * 1 doc/test changes:
8
+ * Newer Travis for 1.8.7, ree, and 2.2.2
9
+
10
+ * 3 PRs merged:
11
+ * Merge pull request #41 from kbrock/kwargs-support
12
+ * Merge pull request #42 from kbrock/newer_travis
13
+ * Merge pull request #43 from kbrock/non_to_s_labels
14
+
1
15
  === 2.2.0 / 2015-05-09
2
16
 
3
17
  * 1 minor features:
@@ -53,7 +53,7 @@ module Benchmark
53
53
  end
54
54
 
55
55
  sorted.each do |report|
56
- name = report.label
56
+ name = report.label.to_s
57
57
 
58
58
  if iter
59
59
  x = (best.ips.to_f / report.ips.to_f)
@@ -11,17 +11,23 @@ module Benchmark
11
11
  module IPS
12
12
 
13
13
  # Benchmark-ips Gem version.
14
- VERSION = "2.2.0"
14
+ VERSION = "2.3.0"
15
15
 
16
16
  # CODENAME of current version.
17
- CODENAME = "Springtime Hummingbird Dance"
17
+ CODENAME = "Monsoon BBQ"
18
18
 
19
19
  # Measure code in block, each code's benchmarked result will display in
20
20
  # iteration per second with standard deviation in given time.
21
21
  # @param time [Integer] Specify how long should benchmark your code in seconds.
22
22
  # @param warmup [Integer] Specify how long should Warmup time run in seconds.
23
23
  # @return [Report]
24
- def ips(time=nil, warmup=nil, quiet=false)
24
+ def ips(*args)
25
+ if args[0].is_a?(Hash)
26
+ time, warmup, quiet = args[0].values_at(:time, :warmup, :quiet)
27
+ else
28
+ time, warmup, quiet = args
29
+ end
30
+
25
31
  suite = nil
26
32
 
27
33
  sync, $stdout.sync = $stdout.sync, true
@@ -17,7 +17,7 @@ module Benchmark
17
17
  # @param action [String, Proc] Code to be benchmarked.
18
18
  # @raise [ArgumentError] Raises when action is not String or not responding to +call+.
19
19
  def initialize(label, action)
20
- @label = label.to_s
20
+ @label = label
21
21
 
22
22
  if action.kind_of? String
23
23
  compile action
@@ -41,7 +41,7 @@ module Benchmark
41
41
  end
42
42
 
43
43
  # The label of benchmarking action.
44
- # @return [String] Label of action.
44
+ # @return [#to_s] Label of action.
45
45
  attr_reader :label
46
46
 
47
47
  # The benchmarking action.
@@ -52,10 +52,11 @@ module Benchmark
52
52
  # Otherwise add a new line and 20 whitespaces.
53
53
  # @return [String] Right justified label.
54
54
  def label_rjust
55
- if @label.size > 20
56
- "#{@label}\n#{' ' * 20}"
55
+ label = @label.to_s
56
+ if label.size > 20
57
+ "#{label}\n#{' ' * 20}"
57
58
  else
58
- @label.rjust(20)
59
+ label.rjust(20)
59
60
  end
60
61
  end
61
62
 
@@ -17,7 +17,7 @@ module Benchmark
17
17
  # @param [Float] ips_sd Standard deviation of iterations per second.
18
18
  # @param [Integer] cycles Number of Cycles.
19
19
  def initialize(label, us, iters, ips, ips_sd, cycles)
20
- @label = label.to_s
20
+ @label = label
21
21
  @microseconds = us
22
22
  @iterations = iters
23
23
  @ips = ips
@@ -100,7 +100,7 @@ module Benchmark
100
100
  # Return header with padding if +@label+ is < length of 20.
101
101
  # @return [String] Right justified header (+@label+).
102
102
  def header
103
- @label.rjust(20)
103
+ @label.to_s.rjust(20)
104
104
  end
105
105
 
106
106
  # Return string repesentation of Entry object.
@@ -149,9 +149,9 @@ module Benchmark
149
149
  def data
150
150
  @data ||= @entries.collect do |entry|
151
151
  {
152
- name: entry.label,
153
- ips: entry.ips,
154
- stddev: entry.ips_sd
152
+ :name => entry.label,
153
+ :ips => entry.ips,
154
+ :stddev => entry.ips_sd
155
155
  }
156
156
  end
157
157
  end
@@ -12,6 +12,14 @@ class TestBenchmarkIPS < Minitest::Test
12
12
  $stdout = @old_stdout
13
13
  end
14
14
 
15
+ def test_kwargs
16
+ Benchmark.ips(:time => 1, :warmup => 1, :quiet => false) do |x|
17
+ x.report("sleep 0.25") { sleep(0.25) }
18
+ end
19
+
20
+ assert $stdout.string.size > 0
21
+ end
22
+
15
23
  def test_output
16
24
  Benchmark.ips(1) do |x|
17
25
  x.report("operation") { 100 * 100 }
@@ -26,6 +34,12 @@ class TestBenchmarkIPS < Minitest::Test
26
34
  end
27
35
 
28
36
  assert $stdout.string.size.zero?
37
+
38
+ Benchmark.ips(:quiet => true) do |x|
39
+ x.report("operation") { 100 * 100 }
40
+ end
41
+
42
+ assert $stdout.string.size.zero?
29
43
  end
30
44
 
31
45
  def test_ips
@@ -108,7 +122,7 @@ class TestBenchmarkIPS < Minitest::Test
108
122
 
109
123
  rep = report.entries.first
110
124
 
111
- assert_equal "sleep_a_quarter_second", rep.label
125
+ assert_equal :sleep_a_quarter_second, rep.label
112
126
  assert_equal 4*5, rep.iterations
113
127
  assert_in_delta 4.0, rep.ips, 0.2
114
128
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: benchmark-ips
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Phoenix
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-09 00:00:00.000000000 Z
11
+ date: 2015-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.5'
19
+ version: '5.6'
20
20
  type: :development
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: '5.5'
26
+ version: '5.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rdoc
29
29
  requirement: !ruby/object:Gem::Requirement