From 3fa4bd82928983cf5f6711c130711502397e05e2 Mon Sep 17 00:00:00 2001 From: Akinori MUSHA Date: Tue, 22 Dec 2020 12:20:21 +0900 Subject: Import set 1.0.0 - SortedSet has been removed for dependency and performance reasons. - Set#join is added as a shorthand for `.to_a.join`. - Set#<=> is added. https://github.com/ruby/set/blob/v1.0.0/CHANGELOG.md --- test/fixtures/fake_sorted_set_gem/sorted_set.rb | 3 ++ test/test_set.rb | 5 +++ test/test_sorted_set.rb | 45 +++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 test/fixtures/fake_sorted_set_gem/sorted_set.rb create mode 100644 test/test_sorted_set.rb (limited to 'test') diff --git a/test/fixtures/fake_sorted_set_gem/sorted_set.rb b/test/fixtures/fake_sorted_set_gem/sorted_set.rb new file mode 100644 index 0000000000..02c9721fa2 --- /dev/null +++ b/test/fixtures/fake_sorted_set_gem/sorted_set.rb @@ -0,0 +1,3 @@ +class SortedSet + # ... +end diff --git a/test/test_set.rb b/test/test_set.rb index 05431e4c63..e62f30d852 100644 --- a/test/test_set.rb +++ b/test/test_set.rb @@ -759,6 +759,11 @@ class TC_Set < Test::Unit::TestCase assert_equal Set[1,2,3], set1 end if Kernel.instance_method(:initialize_clone).arity != 1 + def test_join + assert_equal('123', Set[1, 2, 3].join) + assert_equal('1 & 2 & 3', Set[1, 2, 3].join(' & ')) + end + def test_inspect set1 = Set[1, 2] assert_equal('#', set1.inspect) diff --git a/test/test_sorted_set.rb b/test/test_sorted_set.rb new file mode 100644 index 0000000000..1ac6ee929a --- /dev/null +++ b/test/test_sorted_set.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: false +require 'test/unit' +require 'set' + +class TC_SortedSet < Test::Unit::TestCase + def base_dir + "#{__dir__}/../lib" + end + + def assert_runs(ruby, options: nil) + options = ['-I', base_dir, *options] + r = system(RbConfig.ruby, *options, '-e', ruby) + assert(r) + end + + def test_error + assert_runs <<~RUBY + require "set" + + r = begin + puts SortedSet.new + rescue Exception => e + e.message + end + raise r unless r.match? /has been extracted/ + RUBY + end + + def test_ok_with_gem + assert_runs <<~RUBY, options: ['-I', "#{__dir__}/fixtures/fake_sorted_set_gem"] + require "set" + + var = SortedSet.new.to_s + RUBY + end + + def test_ok_require + assert_runs <<~RUBY, options: ['-I', "#{__dir__}/fixtures/fake_sorted_set_gem"] + require "set" + require "sorted_set" + + var = SortedSet.new.to_s + RUBY + end +end -- cgit v1.2.3