spec/specific/speed_spec.rb in picky-1.3.0 vs spec/specific/speed_spec.rb in picky-1.3.1

- old
+ new

@@ -1,8 +1,54 @@ +# encoding: utf-8 +# require File.dirname(__FILE__) + '/../spec_helper' describe "Speccing Ruby for speed" do - describe "various versions for allocation id concatenating" do + describe "various versions for allocation id concatenating – with symbols" do + before(:each) do + @allocs = [:hello, :speed, :test] + @ids = { + :hello => (:'000_001'..:'100_000').to_a, + :speed => (:'0_001'..:'5_000').to_a, + :test => (:'0_001'..:'1_000').to_a + } + end + describe "+" do + it "should be fast" do + performance_of do + @allocs.inject([]) do |total, alloc| + total + @ids[alloc] + end + end.should < 0.0025 + end + end + describe "map and flatten!(1)" do + it "should be fast" do + performance_of do + @allocs.map { |alloc| @ids[alloc] }.flatten!(1) + end.should < 0.02 + end + end + describe "<< and flatten!(1)" do + it "should be fast" do + performance_of do + @allocs.inject([]) do |total, alloc| + total << @ids[alloc] + end.flatten!(1) + end.should < 0.02 + end + end + describe "<< and flatten!" do + it "should be fast" do + performance_of do + @allocs.inject([]) do |total, alloc| + total << @ids[alloc] + end.flatten! + end.should < 0.02 + end + end + end + describe "various versions for allocation id concatenating – with integers" do before(:each) do @allocs = [:hello, :speed, :test] @ids = { :hello => (1..100_000).to_a, :speed => (1..5_000).to_a, \ No newline at end of file