bnchmrkr 0.0.1
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 +7 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +20 -0
- data/README.md +61 -0
- data/Rakefile +40 -0
- data/VERSION +1 -0
- data/examples/contrived.rb +15 -0
- data/examples/fibonacci.rb +63 -0
- data/examples/file_reading.rb +90 -0
- data/examples/ls_vs_stat.rb +29 -0
- data/lib/bnchmrkr.rb +187 -0
- data/resources/li-100kw.txt +2179 -0
- data/resources/li-10kw.txt +223 -0
- data/resources/li-1Mw.txt +21791 -0
- data/resources/li-1kw.txt +22 -0
- data/resources/li-500kw.txt +10895 -0
- data/resources/li-50kw.txt +1089 -0
- data/test/unit/test_contrived.rb +78 -0
- data/test/unit/test_initialize.rb +56 -0
- metadata +97 -0
@@ -0,0 +1,78 @@
|
|
1
|
+
require_relative File.expand_path(sprintf('%s/../../lib/bnchmrkr', File.dirname(__FILE__)))
|
2
|
+
require 'test-unit'
|
3
|
+
|
4
|
+
class TestContrived < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@tester = Bnchmrkr.new({
|
8
|
+
:count_to_1k => lambda { 1.upto(1000).each { |i| i } },
|
9
|
+
:count_to_5k => lambda { 1.upto(5000).each { |i| i } },
|
10
|
+
:count_to_10k => lambda { 1.upto(10000).each { |i| i } },
|
11
|
+
:count_to_50k => lambda { 1.upto(50000).each { |i| i } },
|
12
|
+
:count_to_100k => lambda { 1.upto(100000).each { |i| i } },
|
13
|
+
}, 10)
|
14
|
+
|
15
|
+
@tester.benchmark!
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_fastest
|
19
|
+
assert_equal(:count_to_1k, @tester.fastest_overall[:name])
|
20
|
+
assert_true(@tester.fastest_overall[:measure] < @tester.slowest_overall[:measure])
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_slowest
|
24
|
+
slowest_overall = @tester.slowest_overall
|
25
|
+
fastest_overall = @tester.fastest_overall
|
26
|
+
|
27
|
+
assert_equal(:count_to_100k, slowest_overall[:name])
|
28
|
+
assert_true(slowest_overall[:measure] > fastest_overall[:measure])
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_speed_by_type
|
32
|
+
@tester.types.each do |type|
|
33
|
+
slowest = @tester.slowest_by_type(type)
|
34
|
+
fastest = @tester.fastest_by_type(type)
|
35
|
+
|
36
|
+
assert_true(slowest > fastest)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_is_faster?
|
41
|
+
fast = @tester.fastest_overall
|
42
|
+
slow = @tester.slowest_overall
|
43
|
+
|
44
|
+
forward = @tester.is_faster?(fast, slow)
|
45
|
+
reverse = @tester.is_faster?(slow, fast)
|
46
|
+
equal = @tester.is_faster?(fast, fast)
|
47
|
+
|
48
|
+
assert_not_equal(forward, reverse)
|
49
|
+
assert_true(forward)
|
50
|
+
assert_false(reverse)
|
51
|
+
assert_false(equal)
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_is_slower?
|
55
|
+
fast = @tester.fastest_overall
|
56
|
+
slow = @tester.slowest_overall
|
57
|
+
|
58
|
+
forward = @tester.is_slower?(slow, fast)
|
59
|
+
reverse = @tester.is_slower?(fast, slow)
|
60
|
+
equal = @tester.is_slower?(slow, slow)
|
61
|
+
|
62
|
+
assert_not_equal(forward, reverse)
|
63
|
+
assert_true(forward)
|
64
|
+
assert_false(reverse)
|
65
|
+
assert_true(equal) # ugh, this is misleading.. but is_slower? is boolean opposite of is_slower?
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_faster_by
|
69
|
+
|
70
|
+
fast = @tester.fastest_overall
|
71
|
+
slow = @tester.slowest_overall
|
72
|
+
|
73
|
+
assert_true(@tester.faster_by(fast, slow, false).is_a?(Float))
|
74
|
+
assert_false(@tester.faster_by(slow, fast))
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require_relative File.expand_path(sprintf('%s/../../lib/bnchmrkr', File.dirname(__FILE__)))
|
2
|
+
require 'test-unit'
|
3
|
+
|
4
|
+
class TestInitialize < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_valid
|
11
|
+
|
12
|
+
assert_nothing_raised do
|
13
|
+
Bnchmrkr.new({:foo => lambda {}})
|
14
|
+
Bnchmrkr.new({:bar => lambda {}}, 10)
|
15
|
+
Bnchmrkr.new({:foo => lambda { 'foo' }, :bar => lambda { 'bar' } })
|
16
|
+
Bnchmrkr.new({:bar => lambda { 'bar' }, :baz => lambda { 'baz' } })
|
17
|
+
Bnchmrkr.new(:foo => lambda { 'fizz' }) # hipster formatting supported by default
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_invalid
|
23
|
+
|
24
|
+
# not a proc
|
25
|
+
assert_raise ArgumentError do
|
26
|
+
Bnchmrkr.new({:foo => :bar})
|
27
|
+
end
|
28
|
+
|
29
|
+
# one valid, one invalid
|
30
|
+
assert_raise ArgumentError do
|
31
|
+
Bnchmrkr.new({
|
32
|
+
:foo => lambda { 'foo' },
|
33
|
+
:bar => 'bar',
|
34
|
+
})
|
35
|
+
end
|
36
|
+
|
37
|
+
# not a number
|
38
|
+
assert_raise ArgumentError do
|
39
|
+
Bnchmrkr.new({:foo => :bar}, 'foo')
|
40
|
+
end
|
41
|
+
|
42
|
+
# not a number pt 2
|
43
|
+
assert_raise ArgumentError do
|
44
|
+
Bnchmrkr.new({:foo => :bar}, :foo)
|
45
|
+
end
|
46
|
+
|
47
|
+
# not a fixnum
|
48
|
+
assert_raise ArgumentError do
|
49
|
+
Bnchmrkr.new({:foo => :bar}, 1.1)
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
metadata
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bnchmrkr
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Conor Horan-Kates
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-03-08 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: jeweler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: test-unit
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.0.0
|
34
|
+
- - ~>
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 3.0.0
|
37
|
+
type: :development
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 3.0.0
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 3.0.0
|
47
|
+
description: given a hash of lambdas, runs and compares the amount of time each implementation
|
48
|
+
takes
|
49
|
+
email: conor.code@gmail.com
|
50
|
+
executables: []
|
51
|
+
extensions: []
|
52
|
+
extra_rdoc_files:
|
53
|
+
- README.md
|
54
|
+
files:
|
55
|
+
- Gemfile
|
56
|
+
- Gemfile.lock
|
57
|
+
- README.md
|
58
|
+
- Rakefile
|
59
|
+
- VERSION
|
60
|
+
- examples/contrived.rb
|
61
|
+
- examples/fibonacci.rb
|
62
|
+
- examples/file_reading.rb
|
63
|
+
- examples/ls_vs_stat.rb
|
64
|
+
- lib/bnchmrkr.rb
|
65
|
+
- resources/li-100kw.txt
|
66
|
+
- resources/li-10kw.txt
|
67
|
+
- resources/li-1Mw.txt
|
68
|
+
- resources/li-1kw.txt
|
69
|
+
- resources/li-500kw.txt
|
70
|
+
- resources/li-50kw.txt
|
71
|
+
- test/unit/test_contrived.rb
|
72
|
+
- test/unit/test_initialize.rb
|
73
|
+
homepage: http://github.com/chorankates/bnchmrkr
|
74
|
+
licenses:
|
75
|
+
- MIT
|
76
|
+
metadata: {}
|
77
|
+
post_install_message:
|
78
|
+
rdoc_options: []
|
79
|
+
require_paths:
|
80
|
+
- lib
|
81
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
requirements: []
|
92
|
+
rubyforge_project:
|
93
|
+
rubygems_version: 2.2.2
|
94
|
+
signing_key:
|
95
|
+
specification_version: 4
|
96
|
+
summary: compare execution time
|
97
|
+
test_files: []
|