spec/sugar-high/array_spec.rb in sugar-high-0.4.0 vs spec/sugar-high/array_spec.rb in sugar-high-0.4.3
- old
+ new
@@ -1,36 +1,77 @@
require 'spec_helper'
require 'sugar-high/array'
describe "SugarHigh" do
describe "Array ext" do
+
describe '#to_symbols' do
it "should translate nested array of numbers and strings into symbols only array, excluding numbers" do
[1, 'blip', [3, "hello"]].to_symbols.should == [:blip, :hello]
end
it "should translate nested array of numbers and strings into symbols only array, including numbers" do
- [[1, 'blip', [3, "hello"]]].to_symbols(:num).should == [:_1, :blip, :_3, :hello]
+ [[1, 'blip', [3, "hello"]]].to_symbols_num.should == [:_1, :blip, :_3, :hello]
end
- it "should translate nested array of numbers and strings into strings only array" do
- [['blip', [3, :hello]]].to_strings.should == ['blip', 'hello']
+ it "should translate nested array of numbers and strings into symbols only array, including numbers" do
+ [[1, 'blip', [1, "hello"]]].to_symbols_uniq.should include :blip, :hello
end
end
+
+ describe '#to_symbols!' do
+ it "should translate nested array of numbers and strings into symbols only array, excluding numbers" do
+ x = [1, 'hello', 'blip', [3, "hello"]].to_symbols!
+ x.should include :hello, :blip
+ end
+ end
describe '#to_strings' do
it "should translate nested array of numbers and strings into symbols only array, excluding numbers" do
[1, 'blip', [3, "hello"]].to_strings.should == ['blip', 'hello']
end
end
+ describe '#to_strings!' do
+ it "should translate nested array of numbers and strings into symbols only array, excluding numbers" do
+ x = [1, 'blip', [3, "hello"]].to_strings!
+ x.should == ['blip', 'hello']
+ end
+ end
+
describe '#flat_uniq' do
it "should flatten array, remove nils and make unique" do
[1, 'blip', ['blip', nil, 'c'], nil].flat_uniq.should == [1, 'blip', 'c']
end
it "should return empty list if called on nil" do
nil.flat_uniq.should == []
+ end
+ end
+
+ describe '#flat_uniq!' do
+ it "should flatten array, remove nils and make unique" do
+ x = [1, 'blip', ['blip', nil, 'c'], nil]
+ x.flat_uniq!
+ x.should == [1, 'blip', 'c']
+ end
+ end
+
+ describe '#sum' do
+ it "should add elements in array" do
+ [1, 2, 3].sum.should == 6
+ end
+ end
+
+ describe '#mean' do
+ it "should find mean of elements in array" do
+ [1, 2, 3].mean.should == 2
+ end
+ end
+
+ describe '#extract' do
+ it "should call method on each element in array" do
+ ["a", "ab", "abc"].extract(:size).mean.should == 2
end
end
describe '#none?' do
it "should be none if no real values in array" do