diff options
Diffstat (limited to 'spec/rubyspec/core/array/multiply_spec.rb')
-rw-r--r-- | spec/rubyspec/core/array/multiply_spec.rb | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/spec/rubyspec/core/array/multiply_spec.rb b/spec/rubyspec/core/array/multiply_spec.rb deleted file mode 100644 index ecd5eba5f7..0000000000 --- a/spec/rubyspec/core/array/multiply_spec.rb +++ /dev/null @@ -1,132 +0,0 @@ -require File.expand_path('../../../spec_helper', __FILE__) -require File.expand_path('../fixtures/classes', __FILE__) -require File.expand_path('../shared/join', __FILE__) - -describe "Array#*" do - it "tries to convert the passed argument to a String using #to_str" do - obj = mock('separator') - obj.should_receive(:to_str).and_return('::') - ([1, 2, 3, 4] * obj).should == '1::2::3::4' - end - - it "tires to convert the passed argument to an Integer using #to_int" do - obj = mock('count') - obj.should_receive(:to_int).and_return(2) - ([1, 2, 3, 4] * obj).should == [1, 2, 3, 4, 1, 2, 3, 4] - end - - it "raises a TypeError if the argument can neither be converted to a string nor an integer" do - obj = mock('not a string or integer') - lambda{ [1,2] * obj }.should raise_error(TypeError) - end - - it "converts the passed argument to a String rather than an Integer" do - obj = mock('2') - def obj.to_int() 2 end - def obj.to_str() "2" end - ([:a, :b, :c] * obj).should == "a2b2c" - end - - it "raises a TypeError is the passed argument is nil" do - lambda{ [1,2] * nil }.should raise_error(TypeError) - end - - it "raises an ArgumentError when passed 2 or more arguments" do - lambda{ [1,2].send(:*, 1, 2) }.should raise_error(ArgumentError) - end - - it "raises an ArgumentError when passed no arguments" do - lambda{ [1,2].send(:*) }.should raise_error(ArgumentError) - end -end - -describe "Array#* with an integer" do - it "concatenates n copies of the array when passed an integer" do - ([ 1, 2, 3 ] * 0).should == [] - ([ 1, 2, 3 ] * 1).should == [1, 2, 3] - ([ 1, 2, 3 ] * 3).should == [1, 2, 3, 1, 2, 3, 1, 2, 3] - ([] * 10).should == [] - end - - it "does not return self even if the passed integer is 1" do - ary = [1, 2, 3] - (ary * 1).should_not equal(ary) - end - - it "properly handles recursive arrays" do - empty = ArraySpecs.empty_recursive_array - (empty * 0).should == [] - (empty * 1).should == empty - (empty * 3).should == [empty, empty, empty] - - array = ArraySpecs.recursive_array - (array * 0).should == [] - (array * 1).should == array - end - - it "raises an ArgumentError when passed a negative integer" do - lambda { [ 1, 2, 3 ] * -1 }.should raise_error(ArgumentError) - lambda { [] * -1 }.should raise_error(ArgumentError) - end - - describe "with a subclass of Array" do - before :each do - ScratchPad.clear - - @array = ArraySpecs::MyArray[1, 2, 3, 4, 5] - end - - it "returns a subclass instance" do - (@array * 0).should be_an_instance_of(ArraySpecs::MyArray) - (@array * 1).should be_an_instance_of(ArraySpecs::MyArray) - (@array * 2).should be_an_instance_of(ArraySpecs::MyArray) - end - - it "does not call #initialize on the subclass instance" do - (@array * 2).should == [1, 2, 3, 4, 5, 1, 2, 3, 4, 5] - ScratchPad.recorded.should be_nil - end - end - - it "copies the taint status of the original array even if the passed count is 0" do - ary = [1, 2, 3] - ary.taint - (ary * 0).tainted?.should == true - end - - it "copies the taint status of the original array even if the array is empty" do - ary = [] - ary.taint - (ary * 3).tainted?.should == true - end - - it "copies the taint status of the original array if the passed count is not 0" do - ary = [1, 2, 3] - ary.taint - (ary * 1).tainted?.should == true - (ary * 2).tainted?.should == true - end - - it "copies the untrusted status of the original array even if the passed count is 0" do - ary = [1, 2, 3] - ary.untrust - (ary * 0).untrusted?.should == true - end - - it "copies the untrusted status of the original array even if the array is empty" do - ary = [] - ary.untrust - (ary * 3).untrusted?.should == true - end - - it "copies the untrusted status of the original array if the passed count is not 0" do - ary = [1, 2, 3] - ary.untrust - (ary * 1).untrusted?.should == true - (ary * 2).untrusted?.should == true - end -end - -describe "Array#* with a string" do - it_behaves_like :array_join_with_string_separator, :* -end |