From 0153737cc6b9309c850f40f9ae7a3835f5c31033 Mon Sep 17 00:00:00 2001 From: Mark Holmberg Date: Thu, 30 Mar 2017 10:17:23 -0600 Subject: [PATCH] Fixes the 'planets align' condition of select.last vs reverse.detect --- code/enumerable/select-last-vs-reverse-detect.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/code/enumerable/select-last-vs-reverse-detect.rb b/code/enumerable/select-last-vs-reverse-detect.rb index f2d64b5..7b0b7e2 100644 --- a/code/enumerable/select-last-vs-reverse-detect.rb +++ b/code/enumerable/select-last-vs-reverse-detect.rb @@ -3,11 +3,25 @@ ARRAY = [*1..100] def fast + # "It just happens to line up" case ARRAY.reverse.detect { |x| (x % 10).zero? } + + # "Middle of the road" case + # ARRAY.reverse.detect { |x| ((x % 10) == 60) } + + # "Worst Case" scenario + # ARRAY.reverse.detect { |x| x == 1 } end def slow + # "It just happens to line up" case ARRAY.select { |x| (x % 10).zero? }.last + + # "Middle of the road" case + # ARRAY.select { |x| ((x % 10) == 60) }.last + + # "Worst Case" scenario + # ARRAY.select { |x| x == 1 }.last end Benchmark.ips do |x| @@ -15,3 +29,4 @@ def slow x.report('Enumerable#select.last') { slow } x.compare! end +