diff options
Diffstat (limited to 'spec/ruby/core/set/shared/inspect.rb')
| -rw-r--r-- | spec/ruby/core/set/shared/inspect.rb | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/spec/ruby/core/set/shared/inspect.rb b/spec/ruby/core/set/shared/inspect.rb new file mode 100644 index 0000000000..31bd8accfd --- /dev/null +++ b/spec/ruby/core/set/shared/inspect.rb @@ -0,0 +1,45 @@ +describe :set_inspect, shared: true do + it "returns a String representation of self" do + Set[].send(@method).should.is_a?(String) + Set[nil, false, true].send(@method).should.is_a?(String) + Set[1, 2, 3].send(@method).should.is_a?(String) + Set["1", "2", "3"].send(@method).should.is_a?(String) + Set[:a, "b", Set[?c]].send(@method).should.is_a?(String) + end + + ruby_version_is "4.0" do + it "does include the elements of the set" do + Set["1"].send(@method).should == 'Set["1"]' + end + end + + ruby_version_is ""..."4.0" do + it "does include the elements of the set" do + Set["1"].send(@method).should == '#<Set: {"1"}>' + end + end + + it "puts spaces between the elements" do + Set["1", "2"].send(@method).should.include?('", "') + end + + ruby_version_is "4.0" do + it "correctly handles cyclic-references" do + set1 = Set[] + set2 = Set[set1] + set1 << set2 + set1.send(@method).should.is_a?(String) + set1.send(@method).should.include?("Set[...]") + end + end + + ruby_version_is ""..."4.0" do + it "correctly handles cyclic-references" do + set1 = Set[] + set2 = Set[set1] + set1 << set2 + set1.send(@method).should.is_a?(String) + set1.send(@method).should.include?("#<Set: {...}>") + end + end +end |
