1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Wrap SortedSet with ruby_version_is ""..."3.0"

* Using $ spec/mspec/tool/wrap_with_guard.rb 'ruby_version_is ""..."3.0"' spec/ruby/library/set/sortedset/**/*_spec.rb
This commit is contained in:
Benoit Daloze 2020-12-05 11:40:00 +01:00
parent bb3d705819
commit 9dbb2bfd73
44 changed files with 698 additions and 566 deletions

View file

@ -1,39 +1,42 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
require_relative 'shared/add'
describe "SortedSet#add" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_add, :add require 'set'
require_relative 'shared/add'
it "takes only values which responds <=>" do describe "SortedSet#add" do
obj = mock('no_comparison_operator') it_behaves_like :sorted_set_add, :add
obj.stub!(:respond_to?).with(:<=>).and_return(false)
-> { SortedSet["hello"].add(obj) }.should raise_error(ArgumentError) it "takes only values which responds <=>" do
obj = mock('no_comparison_operator')
obj.stub!(:respond_to?).with(:<=>).and_return(false)
-> { SortedSet["hello"].add(obj) }.should raise_error(ArgumentError)
end
it "raises on incompatible <=> comparison" do
# Use #to_a here as elements are sorted only when needed.
# Therefore the <=> incompatibility is only noticed on sorting.
-> { SortedSet['1', '2'].add(3).to_a }.should raise_error(ArgumentError)
end
end end
it "raises on incompatible <=> comparison" do describe "SortedSet#add?" do
# Use #to_a here as elements are sorted only when needed. before :each do
# Therefore the <=> incompatibility is only noticed on sorting. @set = SortedSet.new
-> { SortedSet['1', '2'].add(3).to_a }.should raise_error(ArgumentError) end
end
end it "adds the passed Object to self" do
@set.add?("cat")
describe "SortedSet#add?" do @set.should include("cat")
before :each do end
@set = SortedSet.new
end it "returns self when the Object has not yet been added to self" do
@set.add?("cat").should equal(@set)
it "adds the passed Object to self" do end
@set.add?("cat")
@set.should include("cat") it "returns nil when the Object has already been added to self" do
end @set.add?("cat")
@set.add?("cat").should be_nil
it "returns self when the Object has not yet been added to self" do end
@set.add?("cat").should equal(@set)
end
it "returns nil when the Object has already been added to self" do
@set.add?("cat")
@set.add?("cat").should be_nil
end end
end end

View file

@ -1,7 +1,10 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
require_relative 'shared/add'
describe "SortedSet#<<" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_add, :<< require 'set'
require_relative 'shared/add'
describe "SortedSet#<<" do
it_behaves_like :sorted_set_add, :<<
end
end end

View file

@ -1,7 +1,10 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require_relative 'shared/include'
require 'set'
describe "SortedSet#===" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_include, :=== require_relative 'shared/include'
require 'set'
describe "SortedSet#===" do
it_behaves_like :sorted_set_include, :===
end
end end

View file

@ -1,27 +1,30 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#classify" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet["one", "two", "three", "four"]
end
it "yields each Object in self in sorted order" do describe "SortedSet#classify" do
res = [] before :each do
@set.classify { |x| res << x } @set = SortedSet["one", "two", "three", "four"]
res.should == ["one", "two", "three", "four"].sort end
end
it "returns an Enumerator when passed no block" do it "yields each Object in self in sorted order" do
enum = @set.classify res = []
enum.should be_an_instance_of(Enumerator) @set.classify { |x| res << x }
res.should == ["one", "two", "three", "four"].sort
end
classified = enum.each { |x| x.length } it "returns an Enumerator when passed no block" do
classified.should == { 3 => SortedSet["one", "two"], 4 => SortedSet["four"], 5 => SortedSet["three"] } enum = @set.classify
end enum.should be_an_instance_of(Enumerator)
it "classifies the Objects in self based on the block's return value" do classified = enum.each { |x| x.length }
classified = @set.classify { |x| x.length } classified.should == { 3 => SortedSet["one", "two"], 4 => SortedSet["four"], 5 => SortedSet["three"] }
classified.should == { 3 => SortedSet["one", "two"], 4 => SortedSet["four"], 5 => SortedSet["three"] } end
it "classifies the Objects in self based on the block's return value" do
classified = @set.classify { |x| x.length }
classified.should == { 3 => SortedSet["one", "two"], 4 => SortedSet["four"], 5 => SortedSet["three"] }
end
end end
end end

View file

@ -1,17 +1,20 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#clear" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet["one", "two", "three", "four"]
end
it "removes all elements from self" do describe "SortedSet#clear" do
@set.clear before :each do
@set.should be_empty @set = SortedSet["one", "two", "three", "four"]
end end
it "returns self" do it "removes all elements from self" do
@set.clear.should equal(@set) @set.clear
@set.should be_empty
end
it "returns self" do
@set.clear.should equal(@set)
end
end end
end end

View file

@ -1,7 +1,10 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
require_relative 'shared/collect'
describe "SortedSet#collect!" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_collect_bang, :collect! require 'set'
require_relative 'shared/collect'
describe "SortedSet#collect!" do
it_behaves_like :sorted_set_collect_bang, :collect!
end
end end

View file

@ -1,15 +1,18 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet[]" do ruby_version_is ""..."3.0" do
it "returns a new SortedSet populated with the passed Objects" do require 'set'
set = SortedSet[1, 2, 3]
set.instance_of?(SortedSet).should be_true describe "SortedSet[]" do
set.size.should eql(3) it "returns a new SortedSet populated with the passed Objects" do
set = SortedSet[1, 2, 3]
set.should include(1) set.instance_of?(SortedSet).should be_true
set.should include(2) set.size.should eql(3)
set.should include(3)
set.should include(1)
set.should include(2)
set.should include(3)
end
end end
end end

View file

@ -1,38 +1,41 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#delete_if" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet["one", "two", "three"]
end
it "yields each Object in self in sorted order" do describe "SortedSet#delete_if" do
ret = [] before :each do
@set.delete_if { |x| ret << x } @set = SortedSet["one", "two", "three"]
ret.should == ["one", "two", "three"].sort end
end
it "deletes every element from self for which the passed block returns true" do it "yields each Object in self in sorted order" do
@set.delete_if { |x| x.size == 3 } ret = []
@set.size.should eql(1) @set.delete_if { |x| ret << x }
ret.should == ["one", "two", "three"].sort
end
@set.should_not include("one") it "deletes every element from self for which the passed block returns true" do
@set.should_not include("two") @set.delete_if { |x| x.size == 3 }
@set.should include("three") @set.size.should eql(1)
end
it "returns self" do @set.should_not include("one")
@set.delete_if { |x| x }.should equal(@set) @set.should_not include("two")
end @set.should include("three")
end
it "returns an Enumerator when passed no block" do it "returns self" do
enum = @set.delete_if @set.delete_if { |x| x }.should equal(@set)
enum.should be_an_instance_of(Enumerator) end
enum.each { |x| x.size == 3 } it "returns an Enumerator when passed no block" do
enum = @set.delete_if
enum.should be_an_instance_of(Enumerator)
@set.should_not include("one") enum.each { |x| x.size == 3 }
@set.should_not include("two")
@set.should include("three") @set.should_not include("one")
@set.should_not include("two")
@set.should include("three")
end
end end
end end

View file

@ -1,37 +1,40 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#delete" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet["a", "b", "c"]
describe "SortedSet#delete" do
before :each do
@set = SortedSet["a", "b", "c"]
end
it "deletes the passed Object from self" do
@set.delete("a")
@set.should_not include("a")
end
it "returns self" do
@set.delete("a").should equal(@set)
@set.delete("x").should equal(@set)
end
end end
it "deletes the passed Object from self" do describe "SortedSet#delete?" do
@set.delete("a") before :each do
@set.should_not include("a") @set = SortedSet["a", "b", "c"]
end end
it "returns self" do it "deletes the passed Object from self" do
@set.delete("a").should equal(@set) @set.delete?("a")
@set.delete("x").should equal(@set) @set.should_not include("a")
end end
end
it "returns self when the passed Object is in self" do
describe "SortedSet#delete?" do @set.delete?("a").should equal(@set)
before :each do end
@set = SortedSet["a", "b", "c"]
end it "returns nil when the passed Object is not in self" do
@set.delete?("x").should be_nil
it "deletes the passed Object from self" do end
@set.delete?("a")
@set.should_not include("a")
end
it "returns self when the passed Object is in self" do
@set.delete?("a").should equal(@set)
end
it "returns nil when the passed Object is not in self" do
@set.delete?("x").should be_nil
end end
end end

View file

@ -1,7 +1,10 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
require_relative 'shared/difference'
describe "SortedSet#difference" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_difference, :difference require 'set'
require_relative 'shared/difference'
describe "SortedSet#difference" do
it_behaves_like :sorted_set_difference, :difference
end
end end

View file

@ -1,34 +1,37 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#divide" do ruby_version_is ""..."3.0" do
it "divides self into a set of subsets based on the blocks return values" do require 'set'
set = SortedSet["one", "two", "three", "four", "five"].divide { |x| x.length }
set.map { |x| x.to_a }.to_a.sort.should == [["five", "four"], ["one", "two"], ["three"]] describe "SortedSet#divide" do
it "divides self into a set of subsets based on the blocks return values" do
set = SortedSet["one", "two", "three", "four", "five"].divide { |x| x.length }
set.map { |x| x.to_a }.to_a.sort.should == [["five", "four"], ["one", "two"], ["three"]]
end
it "yields each Object in self in sorted order" do
ret = []
SortedSet["one", "two", "three", "four", "five"].divide { |x| ret << x }
ret.should == ["one", "two", "three", "four", "five"].sort
end
# BUG: Does not raise a LocalJumpError, but a NoMethodError
#
# it "raises a LocalJumpError when not passed a block" do
# lambda { SortedSet[1].divide }.should raise_error(LocalJumpError)
# end
end end
it "yields each Object in self in sorted order" do describe "SortedSet#divide when passed a block with an arity of 2" do
ret = [] it "divides self into a set of subsets based on the blocks return values" do
SortedSet["one", "two", "three", "four", "five"].divide { |x| ret << x } set = SortedSet[1, 3, 4, 6, 9, 10, 11].divide { |x, y| (x - y).abs == 1 }
ret.should == ["one", "two", "three", "four", "five"].sort set.map { |x| x.to_a }.to_a.sort.should == [[1], [3, 4], [6], [9, 10, 11]]
end end
# BUG: Does not raise a LocalJumpError, but a NoMethodError it "yields each two Objects to the block" do
# ret = []
# it "raises a LocalJumpError when not passed a block" do SortedSet[1, 2].divide { |x, y| ret << [x, y] }
# lambda { SortedSet[1].divide }.should raise_error(LocalJumpError) ret.should == [[1, 1], [1, 2], [2, 1], [2, 2]]
# end end
end
describe "SortedSet#divide when passed a block with an arity of 2" do
it "divides self into a set of subsets based on the blocks return values" do
set = SortedSet[1, 3, 4, 6, 9, 10, 11].divide { |x, y| (x - y).abs == 1 }
set.map { |x| x.to_a }.to_a.sort.should == [[1], [3, 4], [6], [9, 10, 11]]
end
it "yields each two Objects to the block" do
ret = []
SortedSet[1, 2].divide { |x, y| ret << [x, y] }
ret.should == [[1, 1], [1, 2], [2, 1], [2, 2]]
end end
end end

View file

@ -1,26 +1,29 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#each" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet[1, 2, 3]
end
it "yields each Object in self in sorted order" do describe "SortedSet#each" do
ret = [] before :each do
SortedSet["one", "two", "three"].each { |x| ret << x } @set = SortedSet[1, 2, 3]
ret.should == ["one", "two", "three"].sort end
end
it "returns self" do it "yields each Object in self in sorted order" do
@set.each { |x| x }.should equal(@set) ret = []
end SortedSet["one", "two", "three"].each { |x| ret << x }
ret.should == ["one", "two", "three"].sort
end
it "returns an Enumerator when not passed a block" do it "returns self" do
enum = @set.each @set.each { |x| x }.should equal(@set)
end
ret = [] it "returns an Enumerator when not passed a block" do
enum.each { |x| ret << x } enum = @set.each
ret.sort.should == [1, 2, 3]
ret = []
enum.each { |x| ret << x }
ret.sort.should == [1, 2, 3]
end
end end
end end

View file

@ -1,10 +1,13 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#empty?" do ruby_version_is ""..."3.0" do
it "returns true if self is empty" do require 'set'
SortedSet[].empty?.should be_true
SortedSet[1].empty?.should be_false describe "SortedSet#empty?" do
SortedSet[1,2,3].empty?.should be_false it "returns true if self is empty" do
SortedSet[].empty?.should be_true
SortedSet[1].empty?.should be_false
SortedSet[1,2,3].empty?.should be_false
end
end end
end end

View file

@ -1,16 +1,19 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#eql?" do ruby_version_is ""..."3.0" do
it "returns true when the passed argument is a SortedSet and contains the same elements" do require 'set'
SortedSet[].should eql(SortedSet[])
SortedSet[1, 2, 3].should eql(SortedSet[1, 2, 3])
SortedSet[1, 2, 3].should eql(SortedSet[3, 2, 1])
# SortedSet["a", :b, ?c].should eql(SortedSet[?c, :b, "a"]) describe "SortedSet#eql?" do
it "returns true when the passed argument is a SortedSet and contains the same elements" do
SortedSet[].should eql(SortedSet[])
SortedSet[1, 2, 3].should eql(SortedSet[1, 2, 3])
SortedSet[1, 2, 3].should eql(SortedSet[3, 2, 1])
SortedSet[1, 2, 3].should_not eql(SortedSet[1.0, 2, 3]) # SortedSet["a", :b, ?c].should eql(SortedSet[?c, :b, "a"])
SortedSet[1, 2, 3].should_not eql(SortedSet[2, 3])
SortedSet[1, 2, 3].should_not eql(SortedSet[]) SortedSet[1, 2, 3].should_not eql(SortedSet[1.0, 2, 3])
SortedSet[1, 2, 3].should_not eql(SortedSet[2, 3])
SortedSet[1, 2, 3].should_not eql(SortedSet[])
end
end end
end end

View file

@ -1,13 +1,16 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#==" do ruby_version_is ""..."3.0" do
it "returns true when the passed Object is a SortedSet and self and the Object contain the same elements" do require 'set'
SortedSet[].should == SortedSet[]
SortedSet[1, 2, 3].should == SortedSet[1, 2, 3]
SortedSet["1", "2", "3"].should == SortedSet["1", "2", "3"]
SortedSet[1, 2, 3].should_not == SortedSet[1.0, 2, 3] describe "SortedSet#==" do
SortedSet[1, 2, 3].should_not == [1, 2, 3] it "returns true when the passed Object is a SortedSet and self and the Object contain the same elements" do
SortedSet[].should == SortedSet[]
SortedSet[1, 2, 3].should == SortedSet[1, 2, 3]
SortedSet["1", "2", "3"].should == SortedSet["1", "2", "3"]
SortedSet[1, 2, 3].should_not == SortedSet[1.0, 2, 3]
SortedSet[1, 2, 3].should_not == [1, 2, 3]
end
end end
end end

View file

@ -1,18 +1,21 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#^" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet[1, 2, 3, 4]
end
it "returns a new SortedSet containing elements that are not in both self and the passed Enumerable" do describe "SortedSet#^" do
(@set ^ SortedSet[3, 4, 5]).should == SortedSet[1, 2, 5] before :each do
(@set ^ [3, 4, 5]).should == SortedSet[1, 2, 5] @set = SortedSet[1, 2, 3, 4]
end end
it "raises an ArgumentError when passed a non-Enumerable" do it "returns a new SortedSet containing elements that are not in both self and the passed Enumerable" do
-> { @set ^ 3 }.should raise_error(ArgumentError) (@set ^ SortedSet[3, 4, 5]).should == SortedSet[1, 2, 5]
-> { @set ^ Object.new }.should raise_error(ArgumentError) (@set ^ [3, 4, 5]).should == SortedSet[1, 2, 5]
end
it "raises an ArgumentError when passed a non-Enumerable" do
-> { @set ^ 3 }.should raise_error(ArgumentError)
-> { @set ^ Object.new }.should raise_error(ArgumentError)
end
end end
end end

View file

@ -1,9 +1,12 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require_relative 'shared/select'
require 'set'
ruby_version_is "2.6" do ruby_version_is ""..."3.0" do
describe "SortedSet#filter!" do require_relative 'shared/select'
it_behaves_like :sorted_set_select_bang, :filter! require 'set'
ruby_version_is "2.6" do
describe "SortedSet#filter!" do
it_behaves_like :sorted_set_select_bang, :filter!
end
end end
end end

View file

@ -1,8 +1,11 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#flatten_merge" do ruby_version_is ""..."3.0" do
it "is protected" do require 'set'
SortedSet.should have_protected_instance_method("flatten_merge")
describe "SortedSet#flatten_merge" do
it "is protected" do
SortedSet.should have_protected_instance_method("flatten_merge")
end
end end
end end

View file

@ -1,44 +1,47 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
# Note: Flatten make little sens on sorted sets, because SortedSets are not (by default) ruby_version_is ""..."3.0" do
# comparable. For a SortedSet to be both valid and nested, we need to define a comparison operator: require 'set'
module SortedSet_FlattenSpecs
class ComparableSortedSet < SortedSet # Note: Flatten make little sens on sorted sets, because SortedSets are not (by default)
def <=>(other) # comparable. For a SortedSet to be both valid and nested, we need to define a comparison operator:
return puts "#{other} vs #{self}" unless other.is_a?(ComparableSortedSet) module SortedSet_FlattenSpecs
to_a <=> other.to_a class ComparableSortedSet < SortedSet
def <=>(other)
return puts "#{other} vs #{self}" unless other.is_a?(ComparableSortedSet)
to_a <=> other.to_a
end
end
end
describe "SortedSet#flatten" do
it "returns a copy of self with each included SortedSet flattened" do
klass = SortedSet_FlattenSpecs::ComparableSortedSet
set = klass[klass[1,2], klass[3,4], klass[5,6,7], klass[8]]
flattened_set = set.flatten
flattened_set.should_not equal(set)
flattened_set.should == klass[1, 2, 3, 4, 5, 6, 7, 8]
end
end
describe "SortedSet#flatten!" do
it "flattens self" do
klass = SortedSet_FlattenSpecs::ComparableSortedSet
set = klass[klass[1,2], klass[3,4], klass[5,6,7], klass[8]]
set.flatten!
set.should == klass[1, 2, 3, 4, 5, 6, 7, 8]
end
it "returns self when self was modified" do
klass = SortedSet_FlattenSpecs::ComparableSortedSet
set = klass[klass[1,2], klass[3,4]]
set.flatten!.should equal(set)
end
it "returns nil when self was not modified" do
set = SortedSet[1, 2, 3, 4]
set.flatten!.should be_nil
end end
end end
end end
describe "SortedSet#flatten" do
it "returns a copy of self with each included SortedSet flattened" do
klass = SortedSet_FlattenSpecs::ComparableSortedSet
set = klass[klass[1,2], klass[3,4], klass[5,6,7], klass[8]]
flattened_set = set.flatten
flattened_set.should_not equal(set)
flattened_set.should == klass[1, 2, 3, 4, 5, 6, 7, 8]
end
end
describe "SortedSet#flatten!" do
it "flattens self" do
klass = SortedSet_FlattenSpecs::ComparableSortedSet
set = klass[klass[1,2], klass[3,4], klass[5,6,7], klass[8]]
set.flatten!
set.should == klass[1, 2, 3, 4, 5, 6, 7, 8]
end
it "returns self when self was modified" do
klass = SortedSet_FlattenSpecs::ComparableSortedSet
set = klass[klass[1,2], klass[3,4]]
set.flatten!.should equal(set)
end
it "returns nil when self was not modified" do
set = SortedSet[1, 2, 3, 4]
set.flatten!.should be_nil
end
end

View file

@ -1,13 +1,16 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#hash" do ruby_version_is ""..."3.0" do
it "is static" do require 'set'
SortedSet[].hash.should == SortedSet[].hash
SortedSet[1, 2, 3].hash.should == SortedSet[1, 2, 3].hash
SortedSet["a", "b", "c"].hash.should == SortedSet["c", "b", "a"].hash
SortedSet[].hash.should_not == SortedSet[1, 2, 3].hash describe "SortedSet#hash" do
SortedSet[1, 2, 3].hash.should_not == SortedSet["a", "b", "c"].hash it "is static" do
SortedSet[].hash.should == SortedSet[].hash
SortedSet[1, 2, 3].hash.should == SortedSet[1, 2, 3].hash
SortedSet["a", "b", "c"].hash.should == SortedSet["c", "b", "a"].hash
SortedSet[].hash.should_not == SortedSet[1, 2, 3].hash
SortedSet[1, 2, 3].hash.should_not == SortedSet["a", "b", "c"].hash
end
end end
end end

View file

@ -1,7 +1,10 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require_relative 'shared/include'
require 'set'
describe "SortedSet#include?" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_include, :include? require_relative 'shared/include'
require 'set'
describe "SortedSet#include?" do
it_behaves_like :sorted_set_include, :include?
end
end end

View file

@ -1,30 +1,33 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#initialize" do ruby_version_is ""..."3.0" do
it "is private" do require 'set'
SortedSet.should have_private_instance_method("initialize")
end
it "adds all elements of the passed Enumerable to self" do describe "SortedSet#initialize" do
s = SortedSet.new([1, 2, 3]) it "is private" do
s.size.should eql(3) SortedSet.should have_private_instance_method("initialize")
s.should include(1) end
s.should include(2)
s.should include(3)
end
it "preprocesses all elements by a passed block before adding to self" do it "adds all elements of the passed Enumerable to self" do
s = SortedSet.new([1, 2, 3]) { |x| x * x } s = SortedSet.new([1, 2, 3])
s.size.should eql(3) s.size.should eql(3)
s.should include(1) s.should include(1)
s.should include(4) s.should include(2)
s.should include(9) s.should include(3)
end end
it "raises on incompatible <=> comparison" do it "preprocesses all elements by a passed block before adding to self" do
# Use #to_a here as elements are sorted only when needed. s = SortedSet.new([1, 2, 3]) { |x| x * x }
# Therefore the <=> incompatibility is only noticed on sorting. s.size.should eql(3)
-> { SortedSet.new(['00', nil]).to_a }.should raise_error(ArgumentError) s.should include(1)
s.should include(4)
s.should include(9)
end
it "raises on incompatible <=> comparison" do
# Use #to_a here as elements are sorted only when needed.
# Therefore the <=> incompatibility is only noticed on sorting.
-> { SortedSet.new(['00', nil]).to_a }.should raise_error(ArgumentError)
end
end end
end end

View file

@ -1,10 +1,13 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#inspect" do ruby_version_is ""..."3.0" do
it "returns a String representation of self" do require 'set'
SortedSet[].inspect.should be_kind_of(String)
SortedSet[1, 2, 3].inspect.should be_kind_of(String) describe "SortedSet#inspect" do
SortedSet["1", "2", "3"].inspect.should be_kind_of(String) it "returns a String representation of self" do
SortedSet[].inspect.should be_kind_of(String)
SortedSet[1, 2, 3].inspect.should be_kind_of(String)
SortedSet["1", "2", "3"].inspect.should be_kind_of(String)
end
end end
end end

View file

@ -1,11 +1,14 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require_relative 'shared/intersection'
require 'set'
describe "SortedSet#intersection" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_intersection, :intersection require_relative 'shared/intersection'
end require 'set'
describe "SortedSet#&" do describe "SortedSet#intersection" do
it_behaves_like :sorted_set_intersection, :& it_behaves_like :sorted_set_intersection, :intersection
end
describe "SortedSet#&" do
it_behaves_like :sorted_set_intersection, :&
end
end end

View file

@ -1,31 +1,34 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#keep_if" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet["one", "two", "three"]
end
it "yields each Object in self in sorted order" do describe "SortedSet#keep_if" do
ret = [] before :each do
@set.keep_if { |x| ret << x } @set = SortedSet["one", "two", "three"]
ret.should == ["one", "two", "three"].sort end
end
it "keeps every element from self for which the passed block returns true" do it "yields each Object in self in sorted order" do
@set.keep_if { |x| x.size != 3 } ret = []
@set.to_a.should == ["three"] @set.keep_if { |x| ret << x }
end ret.should == ["one", "two", "three"].sort
end
it "returns self" do it "keeps every element from self for which the passed block returns true" do
@set.keep_if {}.should equal(@set) @set.keep_if { |x| x.size != 3 }
end @set.to_a.should == ["three"]
end
it "returns an Enumerator when passed no block" do it "returns self" do
enum = @set.keep_if @set.keep_if {}.should equal(@set)
enum.should be_an_instance_of(Enumerator) end
enum.each { |x| x.size != 3 } it "returns an Enumerator when passed no block" do
@set.to_a.should == ["three"] enum = @set.keep_if
enum.should be_an_instance_of(Enumerator)
enum.each { |x| x.size != 3 }
@set.to_a.should == ["three"]
end
end end
end end

View file

@ -1,7 +1,10 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require_relative 'shared/length'
require 'set'
describe "SortedSet#length" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_length, :length require_relative 'shared/length'
require 'set'
describe "SortedSet#length" do
it_behaves_like :sorted_set_length, :length
end
end end

View file

@ -1,7 +1,10 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
require_relative 'shared/collect'
describe "SortedSet#map!" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_collect_bang, :map! require 'set'
require_relative 'shared/collect'
describe "SortedSet#map!" do
it_behaves_like :sorted_set_collect_bang, :map!
end
end end

View file

@ -1,7 +1,10 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require_relative 'shared/include'
require 'set'
describe "SortedSet#member?" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_include, :member? require_relative 'shared/include'
require 'set'
describe "SortedSet#member?" do
it_behaves_like :sorted_set_include, :member?
end
end end

View file

@ -1,19 +1,22 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#merge" do ruby_version_is ""..."3.0" do
it "adds the elements of the passed Enumerable to self" do require 'set'
SortedSet["a", "b"].merge(SortedSet["b", "c", "d"]).should == SortedSet["a", "b", "c", "d"]
SortedSet[1, 2].merge([3, 4]).should == SortedSet[1, 2, 3, 4]
end
it "returns self" do describe "SortedSet#merge" do
set = SortedSet[1, 2] it "adds the elements of the passed Enumerable to self" do
set.merge([3, 4]).should equal(set) SortedSet["a", "b"].merge(SortedSet["b", "c", "d"]).should == SortedSet["a", "b", "c", "d"]
end SortedSet[1, 2].merge([3, 4]).should == SortedSet[1, 2, 3, 4]
end
it "raises an ArgumentError when passed a non-Enumerable" do it "returns self" do
-> { SortedSet[1, 2].merge(1) }.should raise_error(ArgumentError) set = SortedSet[1, 2]
-> { SortedSet[1, 2].merge(Object.new) }.should raise_error(ArgumentError) set.merge([3, 4]).should equal(set)
end
it "raises an ArgumentError when passed a non-Enumerable" do
-> { SortedSet[1, 2].merge(1) }.should raise_error(ArgumentError)
-> { SortedSet[1, 2].merge(Object.new) }.should raise_error(ArgumentError)
end
end end
end end

View file

@ -1,7 +1,10 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
require_relative 'shared/difference'
describe "SortedSet#-" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_difference, :- require 'set'
require_relative 'shared/difference'
describe "SortedSet#-" do
it_behaves_like :sorted_set_difference, :-
end
end end

View file

@ -1,7 +1,10 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require_relative 'shared/union'
require 'set'
describe "SortedSet#+" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_union, :+ require_relative 'shared/union'
require 'set'
describe "SortedSet#+" do
it_behaves_like :sorted_set_union, :+
end
end end

View file

@ -1,10 +1,13 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#pretty_print_cycle" do ruby_version_is ""..."3.0" do
it "passes the 'pretty print' representation of a self-referencing SortedSet to the pretty print writer" do require 'set'
pp = mock("PrettyPrint")
pp.should_receive(:text).with("#<SortedSet: {...}>") describe "SortedSet#pretty_print_cycle" do
SortedSet[1, 2, 3].pretty_print_cycle(pp) it "passes the 'pretty print' representation of a self-referencing SortedSet to the pretty print writer" do
pp = mock("PrettyPrint")
pp.should_receive(:text).with("#<SortedSet: {...}>")
SortedSet[1, 2, 3].pretty_print_cycle(pp)
end
end end
end end

View file

@ -1,17 +1,20 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#pretty_print" do ruby_version_is ""..."3.0" do
it "passes the 'pretty print' representation of self to the pretty print writer" do require 'set'
pp = mock("PrettyPrint")
set = SortedSet[1, 2, 3]
pp.should_receive(:text).with("#<SortedSet: {") describe "SortedSet#pretty_print" do
pp.should_receive(:text).with("}>") it "passes the 'pretty print' representation of self to the pretty print writer" do
pp = mock("PrettyPrint")
set = SortedSet[1, 2, 3]
pp.should_receive(:nest).with(1).and_yield pp.should_receive(:text).with("#<SortedSet: {")
pp.should_receive(:seplist).with(set) pp.should_receive(:text).with("}>")
set.pretty_print(pp) pp.should_receive(:nest).with(1).and_yield
pp.should_receive(:seplist).with(set)
set.pretty_print(pp)
end
end end
end end

View file

@ -1,33 +1,36 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#proper_subset?" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet[1, 2, 3, 4]
end
it "returns true if passed a SortedSet that self is a proper subset of" do describe "SortedSet#proper_subset?" do
SortedSet[].proper_subset?(@set).should be_true before :each do
SortedSet[].proper_subset?(SortedSet[1, 2, 3]).should be_true @set = SortedSet[1, 2, 3, 4]
SortedSet[].proper_subset?(SortedSet["a", "b", "c"]).should be_true end
SortedSet[1, 2, 3].proper_subset?(@set).should be_true it "returns true if passed a SortedSet that self is a proper subset of" do
SortedSet[1, 3].proper_subset?(@set).should be_true SortedSet[].proper_subset?(@set).should be_true
SortedSet[1, 2].proper_subset?(@set).should be_true SortedSet[].proper_subset?(SortedSet[1, 2, 3]).should be_true
SortedSet[1].proper_subset?(@set).should be_true SortedSet[].proper_subset?(SortedSet["a", "b", "c"]).should be_true
SortedSet[5].proper_subset?(@set).should be_false SortedSet[1, 2, 3].proper_subset?(@set).should be_true
SortedSet[1, 5].proper_subset?(@set).should be_false SortedSet[1, 3].proper_subset?(@set).should be_true
SortedSet["test"].proper_subset?(@set).should be_false SortedSet[1, 2].proper_subset?(@set).should be_true
SortedSet[1].proper_subset?(@set).should be_true
@set.proper_subset?(@set).should be_false SortedSet[5].proper_subset?(@set).should be_false
SortedSet[].proper_subset?(SortedSet[]).should be_false SortedSet[1, 5].proper_subset?(@set).should be_false
end SortedSet["test"].proper_subset?(@set).should be_false
it "raises an ArgumentError when passed a non-SortedSet" do @set.proper_subset?(@set).should be_false
-> { SortedSet[].proper_subset?([]) }.should raise_error(ArgumentError) SortedSet[].proper_subset?(SortedSet[]).should be_false
-> { SortedSet[].proper_subset?(1) }.should raise_error(ArgumentError) end
-> { SortedSet[].proper_subset?("test") }.should raise_error(ArgumentError)
-> { SortedSet[].proper_subset?(Object.new) }.should raise_error(ArgumentError) it "raises an ArgumentError when passed a non-SortedSet" do
-> { SortedSet[].proper_subset?([]) }.should raise_error(ArgumentError)
-> { SortedSet[].proper_subset?(1) }.should raise_error(ArgumentError)
-> { SortedSet[].proper_subset?("test") }.should raise_error(ArgumentError)
-> { SortedSet[].proper_subset?(Object.new) }.should raise_error(ArgumentError)
end
end end
end end

View file

@ -1,33 +1,36 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#proper_superset?" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet[1, 2, 3, 4]
end
it "returns true if passed a SortedSet that self is a proper superset of" do describe "SortedSet#proper_superset?" do
@set.proper_superset?(SortedSet[]).should be_true before :each do
SortedSet[1, 2, 3].proper_superset?(SortedSet[]).should be_true @set = SortedSet[1, 2, 3, 4]
SortedSet["a", "b", "c"].proper_superset?(SortedSet[]).should be_true end
@set.proper_superset?(SortedSet[1, 2, 3]).should be_true it "returns true if passed a SortedSet that self is a proper superset of" do
@set.proper_superset?(SortedSet[1, 3]).should be_true @set.proper_superset?(SortedSet[]).should be_true
@set.proper_superset?(SortedSet[1, 2]).should be_true SortedSet[1, 2, 3].proper_superset?(SortedSet[]).should be_true
@set.proper_superset?(SortedSet[1]).should be_true SortedSet["a", "b", "c"].proper_superset?(SortedSet[]).should be_true
@set.proper_superset?(SortedSet[5]).should be_false @set.proper_superset?(SortedSet[1, 2, 3]).should be_true
@set.proper_superset?(SortedSet[1, 5]).should be_false @set.proper_superset?(SortedSet[1, 3]).should be_true
@set.proper_superset?(SortedSet["test"]).should be_false @set.proper_superset?(SortedSet[1, 2]).should be_true
@set.proper_superset?(SortedSet[1]).should be_true
@set.proper_superset?(@set).should be_false @set.proper_superset?(SortedSet[5]).should be_false
SortedSet[].proper_superset?(SortedSet[]).should be_false @set.proper_superset?(SortedSet[1, 5]).should be_false
end @set.proper_superset?(SortedSet["test"]).should be_false
it "raises an ArgumentError when passed a non-SortedSet" do @set.proper_superset?(@set).should be_false
-> { SortedSet[].proper_superset?([]) }.should raise_error(ArgumentError) SortedSet[].proper_superset?(SortedSet[]).should be_false
-> { SortedSet[].proper_superset?(1) }.should raise_error(ArgumentError) end
-> { SortedSet[].proper_superset?("test") }.should raise_error(ArgumentError)
-> { SortedSet[].proper_superset?(Object.new) }.should raise_error(ArgumentError) it "raises an ArgumentError when passed a non-SortedSet" do
-> { SortedSet[].proper_superset?([]) }.should raise_error(ArgumentError)
-> { SortedSet[].proper_superset?(1) }.should raise_error(ArgumentError)
-> { SortedSet[].proper_superset?("test") }.should raise_error(ArgumentError)
-> { SortedSet[].proper_superset?(Object.new) }.should raise_error(ArgumentError)
end
end end
end end

View file

@ -1,42 +1,45 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#reject!" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet["one", "two", "three"]
end
it "yields each Object in self in sorted order" do describe "SortedSet#reject!" do
res = [] before :each do
@set.reject! { |x| res << x } @set = SortedSet["one", "two", "three"]
res.should == ["one", "two", "three"].sort end
end
it "deletes every element from self for which the passed block returns true" do it "yields each Object in self in sorted order" do
@set.reject! { |x| x.size == 3 } res = []
@set.size.should eql(1) @set.reject! { |x| res << x }
res.should == ["one", "two", "three"].sort
end
@set.should_not include("one") it "deletes every element from self for which the passed block returns true" do
@set.should_not include("two") @set.reject! { |x| x.size == 3 }
@set.should include("three") @set.size.should eql(1)
end
it "returns self when self was modified" do @set.should_not include("one")
@set.reject! { |x| true }.should equal(@set) @set.should_not include("two")
end @set.should include("three")
end
it "returns nil when self was not modified" do it "returns self when self was modified" do
@set.reject! { |x| false }.should be_nil @set.reject! { |x| true }.should equal(@set)
end end
it "returns an Enumerator when passed no block" do it "returns nil when self was not modified" do
enum = @set.reject! @set.reject! { |x| false }.should be_nil
enum.should be_an_instance_of(Enumerator) end
enum.each { |x| x.size == 3 } it "returns an Enumerator when passed no block" do
enum = @set.reject!
enum.should be_an_instance_of(Enumerator)
@set.should_not include("one") enum.each { |x| x.size == 3 }
@set.should_not include("two")
@set.should include("three") @set.should_not include("one")
@set.should_not include("two")
@set.should include("three")
end
end end
end end

View file

@ -1,17 +1,20 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#replace" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet["a", "b", "c"]
end
it "replaces the contents with other and returns self" do describe "SortedSet#replace" do
@set.replace(SortedSet[1, 2, 3]).should == @set before :each do
@set.should == SortedSet[1, 2, 3] @set = SortedSet["a", "b", "c"]
end end
it "accepts any enumerable as other" do it "replaces the contents with other and returns self" do
@set.replace([1, 2, 3]).should == SortedSet[1, 2, 3] @set.replace(SortedSet[1, 2, 3]).should == @set
@set.should == SortedSet[1, 2, 3]
end
it "accepts any enumerable as other" do
@set.replace([1, 2, 3]).should == SortedSet[1, 2, 3]
end
end end
end end

View file

@ -1,7 +1,10 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require_relative 'shared/select'
require 'set'
describe "SortedSet#select!" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_select_bang, :select! require_relative 'shared/select'
require 'set'
describe "SortedSet#select!" do
it_behaves_like :sorted_set_select_bang, :select!
end
end end

View file

@ -1,7 +1,10 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require_relative 'shared/length'
require 'set'
describe "SortedSet#size" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_length, :size require_relative 'shared/length'
require 'set'
describe "SortedSet#size" do
it_behaves_like :sorted_set_length, :size
end
end end

View file

@ -1,33 +1,36 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#subset?" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet[1, 2, 3, 4]
end
it "returns true if passed a SortedSet that is equal to self or self is a subset of" do describe "SortedSet#subset?" do
@set.subset?(@set).should be_true before :each do
SortedSet[].subset?(SortedSet[]).should be_true @set = SortedSet[1, 2, 3, 4]
end
SortedSet[].subset?(@set).should be_true it "returns true if passed a SortedSet that is equal to self or self is a subset of" do
SortedSet[].subset?(SortedSet[1, 2, 3]).should be_true @set.subset?(@set).should be_true
SortedSet[].subset?(SortedSet["a", "b", "c"]).should be_true SortedSet[].subset?(SortedSet[]).should be_true
SortedSet[1, 2, 3].subset?(@set).should be_true SortedSet[].subset?(@set).should be_true
SortedSet[1, 3].subset?(@set).should be_true SortedSet[].subset?(SortedSet[1, 2, 3]).should be_true
SortedSet[1, 2].subset?(@set).should be_true SortedSet[].subset?(SortedSet["a", "b", "c"]).should be_true
SortedSet[1].subset?(@set).should be_true
SortedSet[5].subset?(@set).should be_false SortedSet[1, 2, 3].subset?(@set).should be_true
SortedSet[1, 5].subset?(@set).should be_false SortedSet[1, 3].subset?(@set).should be_true
SortedSet["test"].subset?(@set).should be_false SortedSet[1, 2].subset?(@set).should be_true
end SortedSet[1].subset?(@set).should be_true
it "raises an ArgumentError when passed a non-SortedSet" do SortedSet[5].subset?(@set).should be_false
-> { SortedSet[].subset?([]) }.should raise_error(ArgumentError) SortedSet[1, 5].subset?(@set).should be_false
-> { SortedSet[].subset?(1) }.should raise_error(ArgumentError) SortedSet["test"].subset?(@set).should be_false
-> { SortedSet[].subset?("test") }.should raise_error(ArgumentError) end
-> { SortedSet[].subset?(Object.new) }.should raise_error(ArgumentError)
it "raises an ArgumentError when passed a non-SortedSet" do
-> { SortedSet[].subset?([]) }.should raise_error(ArgumentError)
-> { SortedSet[].subset?(1) }.should raise_error(ArgumentError)
-> { SortedSet[].subset?("test") }.should raise_error(ArgumentError)
-> { SortedSet[].subset?(Object.new) }.should raise_error(ArgumentError)
end
end end
end end

View file

@ -1,17 +1,20 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#subtract" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet["a", "b", "c"]
end
it "deletes any elements contained in other and returns self" do describe "SortedSet#subtract" do
@set.subtract(SortedSet["b", "c"]).should == @set before :each do
@set.should == SortedSet["a"] @set = SortedSet["a", "b", "c"]
end end
it "accepts any enumerable as other" do it "deletes any elements contained in other and returns self" do
@set.subtract(["c"]).should == SortedSet["a", "b"] @set.subtract(SortedSet["b", "c"]).should == @set
@set.should == SortedSet["a"]
end
it "accepts any enumerable as other" do
@set.subtract(["c"]).should == SortedSet["a", "b"]
end
end end
end end

View file

@ -1,33 +1,36 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#superset?" do ruby_version_is ""..."3.0" do
before :each do require 'set'
@set = SortedSet[1, 2, 3, 4]
end
it "returns true if passed a SortedSet that equals self or self is a proper superset of" do describe "SortedSet#superset?" do
@set.superset?(@set).should be_true before :each do
SortedSet[].superset?(SortedSet[]).should be_true @set = SortedSet[1, 2, 3, 4]
end
@set.superset?(SortedSet[]).should be_true it "returns true if passed a SortedSet that equals self or self is a proper superset of" do
SortedSet[1, 2, 3].superset?(SortedSet[]).should be_true @set.superset?(@set).should be_true
SortedSet["a", "b", "c"].superset?(SortedSet[]).should be_true SortedSet[].superset?(SortedSet[]).should be_true
@set.superset?(SortedSet[1, 2, 3]).should be_true @set.superset?(SortedSet[]).should be_true
@set.superset?(SortedSet[1, 3]).should be_true SortedSet[1, 2, 3].superset?(SortedSet[]).should be_true
@set.superset?(SortedSet[1, 2]).should be_true SortedSet["a", "b", "c"].superset?(SortedSet[]).should be_true
@set.superset?(SortedSet[1]).should be_true
@set.superset?(SortedSet[5]).should be_false @set.superset?(SortedSet[1, 2, 3]).should be_true
@set.superset?(SortedSet[1, 5]).should be_false @set.superset?(SortedSet[1, 3]).should be_true
@set.superset?(SortedSet["test"]).should be_false @set.superset?(SortedSet[1, 2]).should be_true
end @set.superset?(SortedSet[1]).should be_true
it "raises an ArgumentError when passed a non-SortedSet" do @set.superset?(SortedSet[5]).should be_false
-> { SortedSet[].superset?([]) }.should raise_error(ArgumentError) @set.superset?(SortedSet[1, 5]).should be_false
-> { SortedSet[].superset?(1) }.should raise_error(ArgumentError) @set.superset?(SortedSet["test"]).should be_false
-> { SortedSet[].superset?("test") }.should raise_error(ArgumentError) end
-> { SortedSet[].superset?(Object.new) }.should raise_error(ArgumentError)
it "raises an ArgumentError when passed a non-SortedSet" do
-> { SortedSet[].superset?([]) }.should raise_error(ArgumentError)
-> { SortedSet[].superset?(1) }.should raise_error(ArgumentError)
-> { SortedSet[].superset?("test") }.should raise_error(ArgumentError)
-> { SortedSet[].superset?(Object.new) }.should raise_error(ArgumentError)
end
end end
end end

View file

@ -1,17 +1,20 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require 'set'
describe "SortedSet#to_a" do ruby_version_is ""..."3.0" do
it "returns an array containing elements" do require 'set'
set = SortedSet.new [1, 2, 3]
set.to_a.should == [1, 2, 3]
end
it "returns a sorted array containing elements" do describe "SortedSet#to_a" do
set = SortedSet[2, 3, 1] it "returns an array containing elements" do
set.to_a.should == [1, 2, 3] set = SortedSet.new [1, 2, 3]
set.to_a.should == [1, 2, 3]
end
set = SortedSet.new [5, 6, 4, 4] it "returns a sorted array containing elements" do
set.to_a.should == [4, 5, 6] set = SortedSet[2, 3, 1]
set.to_a.should == [1, 2, 3]
set = SortedSet.new [5, 6, 4, 4]
set.to_a.should == [4, 5, 6]
end
end end
end end

View file

@ -1,11 +1,14 @@
require_relative '../../../spec_helper' require_relative '../../../spec_helper'
require_relative 'shared/union'
require 'set'
describe "SortedSet#union" do ruby_version_is ""..."3.0" do
it_behaves_like :sorted_set_union, :union require_relative 'shared/union'
end require 'set'
describe "SortedSet#|" do describe "SortedSet#union" do
it_behaves_like :sorted_set_union, :| it_behaves_like :sorted_set_union, :union
end
describe "SortedSet#|" do
it_behaves_like :sorted_set_union, :|
end
end end