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