bnchmrkr 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.reek +36 -0
- data/.travis.yml +10 -0
- data/Gemfile +4 -1
- data/Gemfile.lock +70 -8
- data/README.md +6 -4
- data/Rakefile +27 -3
- data/VERSION +1 -1
- data/lib/bnchmrkr.rb +50 -15
- data/test/examples/test_examples.rb +20 -0
- data/test/unit/test_contrived.rb +20 -8
- data/test/unit/test_exceptions.rb +35 -0
- data/test/unit/test_initialize.rb +3 -3
- metadata +54 -5
- data/bnchmrkr.gemspec +0 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 214df34c63b9b084f735e0f68b852f7b133cac08
|
4
|
+
data.tar.gz: 0a62535f2639dfcab95c35c4a90740b8ba5b8207
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be45d3fd8037efeeea35eda76b1ebb2258d5b96a09e95fe5e525cf77f5907e243f7a7f3e2c5c6a20fb9b5a2ad5eff1546013a857f74a26fb7b6f35c723c2fabf
|
7
|
+
data.tar.gz: dedbf34a52fccd4e5a45387fc8bfc412cff22b0421d9380a5d59560644d445fbea82a5f4aaf5d26b2047228eba72fedb47ba2cb4cd92ce057f616e6e75a440aa
|
data/.reek
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
---
|
2
|
+
|
3
|
+
Attribute:
|
4
|
+
enabled: false
|
5
|
+
|
6
|
+
# so judgy.. and without context
|
7
|
+
BooleanParameter:
|
8
|
+
enabled: false
|
9
|
+
|
10
|
+
ControlParameter:
|
11
|
+
enabled: false
|
12
|
+
|
13
|
+
DuplicateMethodCall:
|
14
|
+
enabled: false
|
15
|
+
|
16
|
+
NestedIterators:
|
17
|
+
max_allowed_nesting: 3
|
18
|
+
|
19
|
+
# more lacking context judgement - when _would_ you be ok with '!' ?
|
20
|
+
PrimaDonnaMethod:
|
21
|
+
enabled: false
|
22
|
+
|
23
|
+
# this feels a bit arbitrary.. maybe would make more sense if was an average
|
24
|
+
TooManyStatements:
|
25
|
+
max_statements: 15
|
26
|
+
|
27
|
+
# i don't name my exceptions specifically. that doesn't make me a bad person.
|
28
|
+
UncommunicativeVariableName:
|
29
|
+
accept: /^[a|b|e|f|i|j|k|l|m|r]$/
|
30
|
+
|
31
|
+
# or my comparators in ~sort() functions
|
32
|
+
## https://github.com/troessner/reek/issues/886
|
33
|
+
UncommunicativeParameterName:
|
34
|
+
accept:
|
35
|
+
- a
|
36
|
+
- b
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
@@ -2,8 +2,11 @@ ruby '2.0.0'
|
|
2
2
|
|
3
3
|
source 'https://rubygems.org'
|
4
4
|
|
5
|
+
gem 'rake', '~> 10.5.0', '>= 10.5.0'
|
6
|
+
|
5
7
|
group :development do
|
6
|
-
gem 'jeweler', '~> 0'
|
8
|
+
gem 'jeweler', '~> 2.0.1', '>= 2.0.1'
|
9
|
+
gem 'reek', '~> 3.11', '>= 3.11'
|
7
10
|
gem 'test-unit', '~> 3.0.0', '>= 3.0.0'
|
8
11
|
end
|
9
12
|
|
data/Gemfile.lock
CHANGED
@@ -1,20 +1,82 @@
|
|
1
1
|
GEM
|
2
2
|
remote: https://rubygems.org/
|
3
3
|
specs:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
addressable (2.4.0)
|
5
|
+
ast (2.2.0)
|
6
|
+
axiom-types (0.1.1)
|
7
|
+
descendants_tracker (~> 0.0.4)
|
8
|
+
ice_nine (~> 0.11.0)
|
9
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
10
|
+
builder (3.2.2)
|
11
|
+
codeclimate-engine-rb (0.3.1)
|
12
|
+
virtus (~> 1.0)
|
13
|
+
coercible (1.0.0)
|
14
|
+
descendants_tracker (~> 0.0.1)
|
15
|
+
descendants_tracker (0.0.4)
|
16
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
17
|
+
equalizer (0.0.11)
|
18
|
+
faraday (0.9.2)
|
19
|
+
multipart-post (>= 1.2, < 3)
|
20
|
+
git (1.3.0)
|
21
|
+
github_api (0.13.1)
|
22
|
+
addressable (~> 2.4.0)
|
23
|
+
descendants_tracker (~> 0.0.4)
|
24
|
+
faraday (~> 0.8, < 0.10)
|
25
|
+
hashie (>= 3.4)
|
26
|
+
multi_json (>= 1.7.5, < 2.0)
|
27
|
+
oauth2
|
28
|
+
hashie (3.4.3)
|
29
|
+
highline (1.7.8)
|
30
|
+
ice_nine (0.11.2)
|
31
|
+
jeweler (2.0.1)
|
32
|
+
builder
|
33
|
+
bundler (>= 1.0)
|
34
|
+
git (>= 1.2.5)
|
35
|
+
github_api
|
36
|
+
highline (>= 1.6.15)
|
37
|
+
nokogiri (>= 1.5.10)
|
38
|
+
rake
|
39
|
+
rdoc
|
40
|
+
json (1.8.3)
|
41
|
+
jwt (1.5.1)
|
42
|
+
mini_portile2 (2.0.0)
|
43
|
+
multi_json (1.11.2)
|
44
|
+
multi_xml (0.5.5)
|
45
|
+
multipart-post (2.0.0)
|
46
|
+
nokogiri (1.6.7.2)
|
47
|
+
mini_portile2 (~> 2.0.0.rc2)
|
48
|
+
oauth2 (1.1.0)
|
49
|
+
faraday (>= 0.8, < 0.10)
|
50
|
+
jwt (~> 1.0, < 1.5.2)
|
51
|
+
multi_json (~> 1.3)
|
52
|
+
multi_xml (~> 0.5)
|
53
|
+
rack (>= 1.2, < 3)
|
54
|
+
parser (2.3.0.6)
|
55
|
+
ast (~> 2.2)
|
8
56
|
power_assert (0.2.7)
|
9
|
-
|
10
|
-
|
11
|
-
|
57
|
+
rack (1.6.4)
|
58
|
+
rainbow (2.1.0)
|
59
|
+
rake (10.5.0)
|
60
|
+
rdoc (4.2.2)
|
61
|
+
json (~> 1.4)
|
62
|
+
reek (3.11)
|
63
|
+
codeclimate-engine-rb (~> 0.3.1)
|
64
|
+
parser (~> 2.3, >= 2.3.0.6)
|
65
|
+
rainbow (~> 2.0)
|
12
66
|
test-unit (3.0.9)
|
13
67
|
power_assert
|
68
|
+
thread_safe (0.3.5)
|
69
|
+
virtus (1.0.5)
|
70
|
+
axiom-types (~> 0.1)
|
71
|
+
coercible (~> 1.0)
|
72
|
+
descendants_tracker (~> 0.0, >= 0.0.3)
|
73
|
+
equalizer (~> 0.0, >= 0.0.9)
|
14
74
|
|
15
75
|
PLATFORMS
|
16
76
|
ruby
|
17
77
|
|
18
78
|
DEPENDENCIES
|
19
|
-
jeweler (~> 0)
|
79
|
+
jeweler (~> 2.0.1, >= 2.0.1)
|
80
|
+
rake (~> 10.5.0, >= 10.5.0)
|
81
|
+
reek (~> 3.11, >= 3.11)
|
20
82
|
test-unit (~> 3.0.0, >= 3.0.0)
|
data/README.md
CHANGED
@@ -7,10 +7,10 @@ Bnchmrkr (Benchmarker) is a tool to help benchmark different method implementati
|
|
7
7
|
it is driven by [Benchmark](http://ruby-doc.org/stdlib-2.0.0/libdoc/benchmark/rdoc/Benchmark.html)
|
8
8
|
|
9
9
|
## usage
|
10
|
+
|
10
11
|
### pre-built gem installation (stable)
|
11
12
|
|
12
|
-
[
|
13
|
-
[![Gem Version](https://badge.fury.io/rb/bnchmrkr.png)](http://badge.fury.io/rb/bnchmrkr)
|
13
|
+
[![Gem Version](https://badge.fury.io/rb/bnchmrkr.png)](https://rubygems.org/gems/bnchmrkr)
|
14
14
|
|
15
15
|
```sh
|
16
16
|
gem install bnchmrkr
|
@@ -22,6 +22,8 @@ irb(main):001:0> require 'bnchmrkr'
|
|
22
22
|
|
23
23
|
### from-source installation (latest)
|
24
24
|
|
25
|
+
[![build status](https://travis-ci.org/chorankates/bnchmrkr.svg)](https://travis-ci.org/chorankates/bnchmrkr)
|
26
|
+
|
25
27
|
```sh
|
26
28
|
git clone https://github.com/chorankates/bnchmrkr.git
|
27
29
|
cd bnchmrkr
|
@@ -33,7 +35,7 @@ irb(main):001:0> require 'bnchmrkr'
|
|
33
35
|
=> true
|
34
36
|
```
|
35
37
|
|
36
|
-
|
38
|
+
## examples
|
37
39
|
|
38
40
|
```rb
|
39
41
|
tester = Bnchmrkr.new({
|
@@ -74,7 +76,7 @@ overall:
|
|
74
76
|
slowest => stat [0.076243]
|
75
77
|
```
|
76
78
|
|
77
|
-
|
79
|
+
## instance methods
|
78
80
|
```
|
79
81
|
benchmark!
|
80
82
|
count
|
data/Rakefile
CHANGED
@@ -1,10 +1,19 @@
|
|
1
1
|
require 'jeweler'
|
2
|
+
require 'rake'
|
3
|
+
require 'rake/clean'
|
2
4
|
require 'rake/testtask'
|
5
|
+
require 'reek/rake/task'
|
6
|
+
|
7
|
+
BASEDIR = File.dirname(__FILE__)
|
8
|
+
|
9
|
+
$LOAD_PATH << File.join([BASEDIR, 'lib'])
|
10
|
+
$LOAD_PATH << BASEDIR
|
3
11
|
|
4
|
-
$LOAD_PATH << File.join([File.dirname(__FILE__), 'lib'])
|
5
|
-
$LOAD_PATH << File.dirname(__FILE__)
|
6
12
|
require 'bnchmrkr'
|
7
13
|
|
14
|
+
CLEAN.include('bnchmrkr.gemspec')
|
15
|
+
CLOBBER.include('pkg/*')
|
16
|
+
|
8
17
|
Jeweler::Tasks.new do |gem|
|
9
18
|
gem.name = 'bnchmrkr'
|
10
19
|
gem.summary = 'compare execution time'
|
@@ -29,10 +38,17 @@ namespace :test do
|
|
29
38
|
t.verbose = true
|
30
39
|
end
|
31
40
|
|
41
|
+
Rake::TestTask.new do |t|
|
42
|
+
t.name = 'examples'
|
43
|
+
t.libs << 'lib'
|
44
|
+
t.test_files = FileList['test/examples/**/*.rb']
|
45
|
+
t.verbose = true
|
46
|
+
end
|
47
|
+
|
32
48
|
end
|
33
49
|
|
34
50
|
desc 'run all tests'
|
35
|
-
task :test => ['test:unit'] do
|
51
|
+
task :test => ['test:unit', 'test:examples'] do
|
36
52
|
end
|
37
53
|
|
38
54
|
desc 'run all examples'
|
@@ -41,4 +57,12 @@ task :examples do
|
|
41
57
|
sh "time ruby #{file}"
|
42
58
|
puts
|
43
59
|
end
|
60
|
+
end
|
61
|
+
|
62
|
+
Reek::Rake::Task.new do |t|
|
63
|
+
t.config_file = File.join(BASEDIR, '.reek')
|
64
|
+
t.source_files = './**/*.rb'
|
65
|
+
t.reek_opts = '--no-wiki-links'
|
66
|
+
t.fail_on_error = false
|
67
|
+
t.verbose = true
|
44
68
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/lib/bnchmrkr.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'benchmark'
|
4
4
|
|
5
|
+
# Bnchmrkr is a tool to help Benchmark.measure {} and compare different method implementations
|
5
6
|
class Bnchmrkr
|
6
7
|
|
7
8
|
attr_reader :count, :results
|
@@ -36,10 +37,14 @@ class Bnchmrkr
|
|
36
37
|
def benchmark!
|
37
38
|
@lambdas.each_pair do |name, l|
|
38
39
|
1.upto(@count).each do |round|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
40
|
+
begin
|
41
|
+
measure = Benchmark.measure {
|
42
|
+
l.call
|
43
|
+
}
|
44
|
+
add_measure(name, measure)
|
45
|
+
rescue => e
|
46
|
+
add_measure(sprintf('%s-failed', name).to_sym, Benchmark.measure {})
|
47
|
+
end
|
43
48
|
end
|
44
49
|
end
|
45
50
|
|
@@ -56,7 +61,8 @@ class Bnchmrkr
|
|
56
61
|
string = String.new
|
57
62
|
inspection = self.inspect
|
58
63
|
return string unless inspection.nil? or inspection.has_key?(:overall)
|
59
|
-
|
64
|
+
|
65
|
+
longest_key = inspection[:specific].keys.each { |i| i.length }.max.length + 5
|
60
66
|
|
61
67
|
inspection[:specific].keys.each do |i|
|
62
68
|
string << sprintf('%s:%s', i, "\n")
|
@@ -67,7 +73,13 @@ class Bnchmrkr
|
|
67
73
|
|
68
74
|
string << sprintf('overall:%s', "\n")
|
69
75
|
inspection[:overall].each_pair do |type, measure|
|
70
|
-
string << sprintf(" %#{longest_key}s => %s [%s]%s",
|
76
|
+
string << sprintf(" %#{longest_key}s => %s [%s]%s%s",
|
77
|
+
type,
|
78
|
+
measure[:name],
|
79
|
+
measure[:measure],
|
80
|
+
measure.has_key?(:faster_by) ? sprintf(' [faster by %s]', measure[:faster_by]) : '',
|
81
|
+
"\n"
|
82
|
+
)
|
71
83
|
end
|
72
84
|
|
73
85
|
string
|
@@ -109,14 +121,14 @@ class Bnchmrkr
|
|
109
121
|
@slowest
|
110
122
|
end
|
111
123
|
|
112
|
-
# +a+
|
113
|
-
# +b+
|
124
|
+
# +a+ Symbol that represents a known lambda
|
125
|
+
# +b+ Symbol that represents a known lambda
|
114
126
|
# +mode+ :fastest, :slowest, :mean, :median, :total
|
115
127
|
# return boolean if a is faster than b, false if invalid
|
116
128
|
def is_faster?(a, b, mode = :total)
|
117
129
|
result = calculate_per_lambda
|
118
|
-
return false unless result.has_key?(a
|
119
|
-
result[a
|
130
|
+
return false unless result.has_key?(a) and result.has_key?(b)
|
131
|
+
result[a][mode] < result[b][mode]
|
120
132
|
end
|
121
133
|
|
122
134
|
# +a+ {:name => name, :measure => measure}
|
@@ -129,14 +141,37 @@ class Bnchmrkr
|
|
129
141
|
|
130
142
|
# +a+ {:name => name, :measure => measure}
|
131
143
|
# +b+ {:name => name, :measure => measure}
|
132
|
-
#
|
133
|
-
|
144
|
+
# +percent+ Boolean representing percent (String) or Float difference
|
145
|
+
# return Float representing difference in measures, or false, if b is slower than a
|
146
|
+
def faster_by_result(a, b, percent = true)
|
134
147
|
return false if b[:measure] < a[:measure]
|
135
148
|
|
136
|
-
faster = (b[:measure] - a[:measure]) /
|
149
|
+
faster = (b[:measure] - a[:measure]) / a[:measure]
|
137
150
|
percent ? sprintf('%4f%', faster * 100) : faster
|
138
151
|
end
|
139
152
|
|
153
|
+
# +a+ Symbol representing name of known lambda type
|
154
|
+
# +b+ Symbol representing name of known lambda type
|
155
|
+
# +percent+ Boolean representing percent (String) or Float difference
|
156
|
+
# return Float representing difference in measures, or false, if b is slower than a
|
157
|
+
def faster_by_type(a, b, percent = true)
|
158
|
+
fastest_a = fastest_by_type(a)
|
159
|
+
fastest_b = fastest_by_type(b)
|
160
|
+
|
161
|
+
return false if fastest_b < fastest_a
|
162
|
+
|
163
|
+
faster = (fastest_b - fastest_a) / fastest_a
|
164
|
+
percent ? sprintf('%4f%', faster * 100) : faster
|
165
|
+
end
|
166
|
+
|
167
|
+
def slower_by_type(a, b, percent = true)
|
168
|
+
! faster_by_type(a, b, percent)
|
169
|
+
end
|
170
|
+
|
171
|
+
def slower_by_result(a, b, percent = true)
|
172
|
+
! faster_by_result(a, b, percent)
|
173
|
+
end
|
174
|
+
|
140
175
|
private
|
141
176
|
|
142
177
|
def add_measure(name, measure)
|
@@ -156,9 +191,8 @@ class Bnchmrkr
|
|
156
191
|
hash[name] = Hash.new
|
157
192
|
|
158
193
|
total = 0
|
194
|
+
# TODO add the mode
|
159
195
|
measures.collect {|m| total += m.real }
|
160
|
-
|
161
|
-
# TODO do we want to determine the mode?
|
162
196
|
hash[name][:fastest] = sorted.first.real
|
163
197
|
hash[name][:slowest] = sorted.last.real
|
164
198
|
hash[name][:mean] = sprintf('%5f', total / sorted.size)
|
@@ -181,6 +215,7 @@ class Bnchmrkr
|
|
181
215
|
end
|
182
216
|
end
|
183
217
|
|
218
|
+
@fastest[:faster_by] = self.faster_by_result(@fastest, @slowest)
|
184
219
|
{ :fastest => @fastest, :slowest => @slowest }
|
185
220
|
end
|
186
221
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative File.expand_path(sprintf('%s/../../lib/bnchmrkr', File.dirname(__FILE__)))
|
2
|
+
require 'test-unit'
|
3
|
+
|
4
|
+
# run all examples, ensure non-0 exit code and non-nil output
|
5
|
+
class TestExamples < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup; end
|
8
|
+
|
9
|
+
def test_all_examples
|
10
|
+
@files = Dir.glob(sprintf('%s/../../examples/*.rb', File.dirname(__FILE__)))
|
11
|
+
|
12
|
+
@files.each do |file|
|
13
|
+
raw = `ruby #{file}`
|
14
|
+
|
15
|
+
assert_true($?.success?)
|
16
|
+
assert_not_nil(raw)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
data/test/unit/test_contrived.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require_relative File.expand_path(sprintf('%s/../../lib/bnchmrkr', File.dirname(__FILE__)))
|
2
2
|
require 'test-unit'
|
3
3
|
|
4
|
+
# tests for the example in examplescontrived.rb
|
4
5
|
class TestContrived < Test::Unit::TestCase
|
5
6
|
|
6
7
|
def setup
|
@@ -38,8 +39,8 @@ class TestContrived < Test::Unit::TestCase
|
|
38
39
|
end
|
39
40
|
|
40
41
|
def test_is_faster?
|
41
|
-
fast = @tester.fastest_overall
|
42
|
-
slow = @tester.slowest_overall
|
42
|
+
fast = @tester.fastest_overall[:name]
|
43
|
+
slow = @tester.slowest_overall[:name]
|
43
44
|
|
44
45
|
forward = @tester.is_faster?(fast, slow)
|
45
46
|
reverse = @tester.is_faster?(slow, fast)
|
@@ -52,8 +53,8 @@ class TestContrived < Test::Unit::TestCase
|
|
52
53
|
end
|
53
54
|
|
54
55
|
def test_is_slower?
|
55
|
-
fast = @tester.fastest_overall
|
56
|
-
slow = @tester.slowest_overall
|
56
|
+
fast = @tester.fastest_overall[:name]
|
57
|
+
slow = @tester.slowest_overall[:name]
|
57
58
|
|
58
59
|
forward = @tester.is_slower?(slow, fast)
|
59
60
|
reverse = @tester.is_slower?(fast, slow)
|
@@ -65,13 +66,24 @@ class TestContrived < Test::Unit::TestCase
|
|
65
66
|
assert_true(equal) # ugh, this is misleading.. but is_slower? is boolean opposite of is_slower?
|
66
67
|
end
|
67
68
|
|
68
|
-
def
|
69
|
-
|
69
|
+
def test_faster_by_result
|
70
70
|
fast = @tester.fastest_overall
|
71
71
|
slow = @tester.slowest_overall
|
72
72
|
|
73
|
-
|
74
|
-
|
73
|
+
assert_not_nil(@tester.faster_by_result(fast, slow, true))
|
74
|
+
assert_match(/\d+\.\d+%/, @tester.faster_by_result(fast, slow, true))
|
75
|
+
assert_true(@tester.faster_by_result(fast, slow, false).is_a?(Float))
|
76
|
+
assert_false(@tester.faster_by_result(slow, fast))
|
77
|
+
end
|
78
|
+
|
79
|
+
def test_faster_by_type
|
80
|
+
fastest = @tester.fastest_overall[:name]
|
81
|
+
slowest = @tester.slowest_overall[:name]
|
82
|
+
|
83
|
+
assert_not_nil(@tester.faster_by_type(fastest, slowest, true))
|
84
|
+
assert_match(/\d+\.\d+%/, @tester.faster_by_type(fastest, slowest, true))
|
85
|
+
assert_true(@tester.faster_by_type(fastest, slowest, false).is_a?(Float))
|
86
|
+
assert_false(@tester.faster_by_type(slowest, fastest))
|
75
87
|
|
76
88
|
end
|
77
89
|
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require_relative File.expand_path(sprintf('%s/../../lib/bnchmrkr', File.dirname(__FILE__)))
|
2
|
+
require 'test-unit'
|
3
|
+
|
4
|
+
# test that exceptions thrown in the middle of a #benchmark! run will behave in expected ways
|
5
|
+
class TestExceptions < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup; end
|
8
|
+
|
9
|
+
def test_lambdas_will_raise
|
10
|
+
tester = Bnchmrkr.new({
|
11
|
+
:divbyzero => lambda {
|
12
|
+
10 / 0
|
13
|
+
},
|
14
|
+
})
|
15
|
+
|
16
|
+
assert_nothing_raised do
|
17
|
+
tester.benchmark!
|
18
|
+
assert_true(tester.results.has_key?('divbyzero-failed'.to_sym))
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_lambdas_wont_raise_anyway
|
23
|
+
tester = Bnchmrkr.new({
|
24
|
+
:foo => lambda { 'bar' }
|
25
|
+
})
|
26
|
+
|
27
|
+
assert_nothing_raised do
|
28
|
+
tester.benchmark!
|
29
|
+
assert_true(tester.results.has_key?(:foo))
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
require_relative File.expand_path(sprintf('%s/../../lib/bnchmrkr', File.dirname(__FILE__)))
|
2
2
|
require 'test-unit'
|
3
3
|
|
4
|
-
class TestInitialize < Test::Unit::TestCase
|
5
4
|
|
6
|
-
|
5
|
+
# test valid/invalid instantiations
|
6
|
+
class TestInitialize < Test::Unit::TestCase
|
7
7
|
|
8
|
-
end
|
8
|
+
def setup; end
|
9
9
|
|
10
10
|
def test_valid
|
11
11
|
|
metadata
CHANGED
@@ -1,29 +1,75 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bnchmrkr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Conor Horan-Kates
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 10.5.0
|
20
|
+
- - ~>
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 10.5.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 10.5.0
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 10.5.0
|
13
33
|
- !ruby/object:Gem::Dependency
|
14
34
|
name: jeweler
|
15
35
|
requirement: !ruby/object:Gem::Requirement
|
16
36
|
requirements:
|
37
|
+
- - '>='
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 2.0.1
|
17
40
|
- - ~>
|
18
41
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
42
|
+
version: 2.0.1
|
20
43
|
type: :development
|
21
44
|
prerelease: false
|
22
45
|
version_requirements: !ruby/object:Gem::Requirement
|
23
46
|
requirements:
|
47
|
+
- - '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 2.0.1
|
50
|
+
- - ~>
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 2.0.1
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: reek
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - '>='
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '3.11'
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '3.11'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '3.11'
|
24
70
|
- - ~>
|
25
71
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
72
|
+
version: '3.11'
|
27
73
|
- !ruby/object:Gem::Dependency
|
28
74
|
name: test-unit
|
29
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,14 +98,17 @@ extensions: []
|
|
52
98
|
extra_rdoc_files:
|
53
99
|
- README.md
|
54
100
|
files:
|
101
|
+
- .reek
|
102
|
+
- .travis.yml
|
55
103
|
- Gemfile
|
56
104
|
- Gemfile.lock
|
57
105
|
- README.md
|
58
106
|
- Rakefile
|
59
107
|
- VERSION
|
60
|
-
- bnchmrkr.gemspec
|
61
108
|
- lib/bnchmrkr.rb
|
109
|
+
- test/examples/test_examples.rb
|
62
110
|
- test/unit/test_contrived.rb
|
111
|
+
- test/unit/test_exceptions.rb
|
63
112
|
- test/unit/test_initialize.rb
|
64
113
|
homepage: http://github.com/chorankates/bnchmrkr
|
65
114
|
licenses:
|
data/bnchmrkr.gemspec
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: bnchmrkr 0.0.2 ruby lib
|
6
|
-
|
7
|
-
Gem::Specification.new do |s|
|
8
|
-
s.name = "bnchmrkr"
|
9
|
-
s.version = "0.0.2"
|
10
|
-
|
11
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
-
s.require_paths = ["lib"]
|
13
|
-
s.authors = ["Conor Horan-Kates"]
|
14
|
-
s.date = "2016-03-08"
|
15
|
-
s.description = "given a hash of lambdas, runs and compares the amount of time each implementation takes"
|
16
|
-
s.email = "conor.code@gmail.com"
|
17
|
-
s.extra_rdoc_files = [
|
18
|
-
"README.md"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
"Gemfile",
|
22
|
-
"Gemfile.lock",
|
23
|
-
"README.md",
|
24
|
-
"Rakefile",
|
25
|
-
"VERSION",
|
26
|
-
"bnchmrkr.gemspec",
|
27
|
-
"lib/bnchmrkr.rb",
|
28
|
-
"test/unit/test_contrived.rb",
|
29
|
-
"test/unit/test_initialize.rb"
|
30
|
-
]
|
31
|
-
s.homepage = "http://github.com/chorankates/bnchmrkr"
|
32
|
-
s.licenses = ["MIT"]
|
33
|
-
s.rubygems_version = "2.2.2"
|
34
|
-
s.summary = "compare execution time"
|
35
|
-
|
36
|
-
if s.respond_to? :specification_version then
|
37
|
-
s.specification_version = 4
|
38
|
-
|
39
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
40
|
-
s.add_development_dependency(%q<jeweler>, ["~> 0"])
|
41
|
-
s.add_development_dependency(%q<test-unit>, [">= 3.0.0", "~> 3.0.0"])
|
42
|
-
else
|
43
|
-
s.add_dependency(%q<jeweler>, ["~> 0"])
|
44
|
-
s.add_dependency(%q<test-unit>, [">= 3.0.0", "~> 3.0.0"])
|
45
|
-
end
|
46
|
-
else
|
47
|
-
s.add_dependency(%q<jeweler>, ["~> 0"])
|
48
|
-
s.add_dependency(%q<test-unit>, [">= 3.0.0", "~> 3.0.0"])
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|