summaryrefslogtreecommitdiff
path: root/spec/rubyspec/core/array/shared/eql.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/core/array/shared/eql.rb')
-rw-r--r--spec/rubyspec/core/array/shared/eql.rb92
1 files changed, 0 insertions, 92 deletions
diff --git a/spec/rubyspec/core/array/shared/eql.rb b/spec/rubyspec/core/array/shared/eql.rb
deleted file mode 100644
index b5d9128434..0000000000
--- a/spec/rubyspec/core/array/shared/eql.rb
+++ /dev/null
@@ -1,92 +0,0 @@
-describe :array_eql, shared: true do
- it "returns true if other is the same array" do
- a = [1]
- a.send(@method, a).should be_true
- end
-
- it "returns true if corresponding elements are #eql?" do
- [].send(@method, []).should be_true
- [1, 2, 3, 4].send(@method, [1, 2, 3, 4]).should be_true
- end
-
- it "returns false if other is shorter than self" do
- [1, 2, 3, 4].send(@method, [1, 2, 3]).should be_false
- end
-
- it "returns false if other is longer than self" do
- [1, 2, 3, 4].send(@method, [1, 2, 3, 4, 5]).should be_false
- end
-
- it "returns false immediately when sizes of the arrays differ" do
- obj = mock('1')
- obj.should_not_receive(@method)
-
- [] .send(@method, [obj] ).should be_false
- [obj] .send(@method, [] ).should be_false
- end
-
- it "handles well recursive arrays" do
- a = ArraySpecs.empty_recursive_array
- a .send(@method, [a] ).should be_true
- a .send(@method, [[a]] ).should be_true
- [a] .send(@method, a ).should be_true
- [[a]] .send(@method, a ).should be_true
- # These may be surprising, but no difference can be
- # found between these arrays, so they are ==.
- # There is no "path" that will lead to a difference
- # (contrary to other examples below)
-
- a2 = ArraySpecs.empty_recursive_array
- a .send(@method, a2 ).should be_true
- a .send(@method, [a2] ).should be_true
- a .send(@method, [[a2]] ).should be_true
- [a] .send(@method, a2 ).should be_true
- [[a]] .send(@method, a2 ).should be_true
-
- back = []
- forth = [back]; back << forth;
- back .send(@method, a ).should be_true
-
- x = []; x << x << x
- x .send(@method, a ).should be_false # since x.size != a.size
- x .send(@method, [a, a] ).should be_false # since x[0].size != [a, a][0].size
- x .send(@method, [x, a] ).should be_false # since x[1].size != [x, a][1].size
- [x, a] .send(@method, [a, x] ).should be_false # etc...
- x .send(@method, [x, x] ).should be_true
- x .send(@method, [[x, x], [x, x]] ).should be_true
-
- tree = [];
- branch = []; branch << tree << tree; tree << branch
- tree2 = [];
- branch2 = []; branch2 << tree2 << tree2; tree2 << branch2
- forest = [tree, branch, :bird, a]; forest << forest
- forest2 = [tree2, branch2, :bird, a2]; forest2 << forest2
-
- forest .send(@method, forest2 ).should be_true
- forest .send(@method, [tree2, branch, :bird, a, forest2]).should be_true
-
- diffforest = [branch2, tree2, :bird, a2]; diffforest << forest2
- forest .send(@method, diffforest ).should be_false # since forest[0].size == 1 != 3 == diffforest[0]
- forest .send(@method, [nil] ).should be_false
- forest .send(@method, [forest] ).should be_false
- end
-
- it "does not call #to_ary on its argument" do
- obj = mock('to_ary')
- obj.should_not_receive(:to_ary)
-
- [1, 2, 3].send(@method, obj).should be_false
- end
-
- it "does not call #to_ary on Array subclasses" do
- ary = ArraySpecs::ToAryArray[5, 6, 7]
- ary.should_not_receive(:to_ary)
- [5, 6, 7].send(@method, ary).should be_true
- end
-
- it "ignores array class differences" do
- ArraySpecs::MyArray[1, 2, 3].send(@method, [1, 2, 3]).should be_true
- ArraySpecs::MyArray[1, 2, 3].send(@method, ArraySpecs::MyArray[1, 2, 3]).should be_true
- [1, 2, 3].send(@method, ArraySpecs::MyArray[1, 2, 3]).should be_true
- end
-end