Sha256: 15b12ba7278dbfc60b756f4bde095a33cb6719d6c08cc3524b84de401f45bfe3

Contents?: true

Size: 1.99 KB

Versions: 10

Compression:

Stored size: 1.99 KB

Contents

require 'spec_helper'

describe Array do

  describe 'sort_by_levenshtein!' do
    it 'should sort right' do
      ['fish', 'flash', 'flush', 'smooch'].sort_by_levenshtein!(:fush).should == ['fish', 'flush', 'flash', 'smooch']
    end
  end

  describe 'random' do
    it 'should choose one element from the array' do
      left = [1,2,3]
      100.times do
        left.delete [1,2,3].random
      end
      left.should be_empty
    end
  end
  
  describe "clustered_uniq_fast" do
    it "should generate a new array" do
      ary = [:test1, :test2, :test1]
      ary.clustered_uniq_fast.object_id.should_not == ary.object_id
    end
    it "should not change clusteredly unique arrays" do
      [:test1, :test2, :test1].clustered_uniq_fast.should == [:test1, :test2, :test1]
    end
    it "should not skip interspersed elements" do
      [:test1, :test1, :test2, :test1].clustered_uniq_fast.should == [:test1, :test2, :test1]
    end
    it "should work like uniq if no interspersed elements exist" do
      [:test1, :test1, :test2, :test2, :test3].clustered_uniq_fast.should == [:test1, :test2, :test3]
    end
    it "is fast" do
      performance_of { [:test1, :test1, :test2, :test2, :test3].clustered_uniq_fast }.should < 0.00001
    end
  end
  describe "clustered_uniq" do
    it "should generate a new array" do
      ary = [:test1, :test2, :test1]
      ary.clustered_uniq.object_id.should_not == ary.object_id
    end
    it "should not change clusteredly unique arrays" do
      [:test1, :test2, :test1].clustered_uniq.should == [:test1, :test2, :test1]
    end
    it "should not skip interspersed elements" do
      [:test1, :test1, :test2, :test1].clustered_uniq.should == [:test1, :test2, :test1]
    end
    it "should work like uniq if no interspersed elements exist" do
      [:test1, :test1, :test2, :test2, :test3].clustered_uniq.should == [:test1, :test2, :test3]
    end
    it "is fast" do
      performance_of { [:test1, :test1, :test2, :test2, :test3].clustered_uniq }.should < 0.000012
    end
  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
picky-0.12.1 spec/lib/extensions/array_spec.rb
picky-0.12.0 spec/lib/extensions/array_spec.rb
picky-0.11.2 spec/lib/extensions/array_spec.rb
picky-0.11.1 spec/lib/extensions/array_spec.rb
picky-0.11.0 spec/lib/extensions/array_spec.rb
picky-0.10.5 spec/lib/extensions/array_spec.rb
picky-0.10.4 spec/lib/extensions/array_spec.rb
picky-0.10.2 spec/lib/extensions/array_spec.rb
picky-0.10.1 spec/lib/extensions/array_spec.rb
picky-0.10.0 spec/lib/extensions/array_spec.rb