Skip to content

Commit 1a991b9

Browse files
committed
Merge pull request #75 from vadviktor/vadviktor-patch-range_idea
extended Range#include example with alternatives
2 parents 5fdb058 + c73f883 commit 1a991b9

File tree

2 files changed

+18
-17
lines changed

2 files changed

+18
-17
lines changed

README.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -864,18 +864,24 @@ Comparison:
864864

865865
```
866866
$ ruby -v code/range/cover-vs-include.rb
867-
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]
867+
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
868868
869869
Calculating -------------------------------------
870-
Range#cover? 95.445k i/100ms
871-
Range#include? 9.326k i/100ms
870+
range#cover? 85.467k i/100ms
871+
range#include? 7.720k i/100ms
872+
range#member? 7.783k i/100ms
873+
plain compare 102.189k i/100ms
872874
-------------------------------------------------
873-
Range#cover? 2.327M (± 4.7%) i/s - 11.644M
874-
Range#include? 99.652k (± 5.4%) i/s - 503.604k
875+
range#cover? 1.816M (± 5.6%) i/s - 9.060M
876+
range#include? 83.344k (± 5.0%) i/s - 416.880k
877+
range#member? 82.654k (± 5.0%) i/s - 412.499k
878+
plain compare 2.581M (± 6.2%) i/s - 12.876M
875879
876880
Comparison:
877-
Range#cover?: 2327220.4 i/s
878-
Range#include?: 99651.6 i/s - 23.35x slower
881+
plain compare: 2581211.8 i/s
882+
range#cover?: 1816038.5 i/s - 1.42x slower
883+
range#include?: 83343.9 i/s - 30.97x slower
884+
range#member?: 82654.1 i/s - 31.23x slower
879885
```
880886

881887

code/range/cover-vs-include.rb

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,11 @@
55
END_OF_JULY = Date.new(2015, 7, 31)
66
DAY_IN_JULY = Date.new(2015, 7, 15)
77

8-
def fast
9-
(BEGIN_OF_JULY..END_OF_JULY).cover? DAY_IN_JULY
10-
end
11-
12-
def slow
13-
(BEGIN_OF_JULY..END_OF_JULY).include? DAY_IN_JULY
14-
end
15-
168
Benchmark.ips do |x|
17-
x.report("Range#cover?") { fast }
18-
x.report("Range#include?") { slow }
9+
x.report('range#cover?') { (BEGIN_OF_JULY..END_OF_JULY).cover? DAY_IN_JULY }
10+
x.report('range#include?') { (BEGIN_OF_JULY..END_OF_JULY).include? DAY_IN_JULY }
11+
x.report('range#member?') { (BEGIN_OF_JULY..END_OF_JULY).member? DAY_IN_JULY }
12+
x.report('plain compare') { BEGIN_OF_JULY < DAY_IN_JULY && DAY_IN_JULY < END_OF_JULY }
13+
1914
x.compare!
2015
end

0 commit comments

Comments
 (0)