diff options
Diffstat (limited to 'spec/rubyspec/core/array/combination_spec.rb')
| -rw-r--r-- | spec/rubyspec/core/array/combination_spec.rb | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/spec/rubyspec/core/array/combination_spec.rb b/spec/rubyspec/core/array/combination_spec.rb deleted file mode 100644 index 7869783d1e..0000000000 --- a/spec/rubyspec/core/array/combination_spec.rb +++ /dev/null @@ -1,74 +0,0 @@ -require File.expand_path('../../../spec_helper', __FILE__) - -describe "Array#combination" do - before :each do - @array = [1, 2, 3, 4] - end - - it "returns an enumerator when no block is provided" do - @array.combination(2).should be_an_instance_of(Enumerator) - end - - it "returns self when a block is given" do - @array.combination(2){}.should equal(@array) - end - - it "yields nothing for out of bounds length and return self" do - @array.combination(5).to_a.should == [] - @array.combination(-1).to_a.should == [] - end - - it "yields the expected combinations" do - @array.combination(3).to_a.sort.should == [[1,2,3],[1,2,4],[1,3,4],[2,3,4]] - end - - it "yields nothing if the argument is out of bounds" do - @array.combination(-1).to_a.should == [] - @array.combination(5).to_a.should == [] - end - - it "yields a copy of self if the argument is the size of the receiver" do - r = @array.combination(4).to_a - r.should == [@array] - r[0].should_not equal(@array) - end - - it "yields [] when length is 0" do - @array.combination(0).to_a.should == [[]] # one combination of length 0 - [].combination(0).to_a.should == [[]] # one combination of length 0 - end - - it "yields a partition consisting of only singletons" do - @array.combination(1).to_a.sort.should == [[1],[2],[3],[4]] - end - - it "generates from a defensive copy, ignoring mutations" do - accum = [] - @array.combination(2) do |x| - accum << x - @array[0] = 1 - end - accum.should == [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]] - end - - describe "when no block is given" do - describe "returned Enumerator" do - describe "size" do - it "returns 0 when the number of combinations is < 0" do - @array.combination(-1).size.should == 0 - [].combination(-2).size.should == 0 - end - it "returns the binomial coeficient between the array size the number of combinations" do - @array.combination(5).size.should == 0 - @array.combination(4).size.should == 1 - @array.combination(3).size.should == 4 - @array.combination(2).size.should == 6 - @array.combination(1).size.should == 4 - @array.combination(0).size.should == 1 - [].combination(0).size.should == 1 - [].combination(1).size.should == 0 - end - end - end - end -end |
