From dd3501bb9580951623a9aa7c2f86f7c98f9d6b9c Mon Sep 17 00:00:00 2001 From: Akinori MUSHA Date: Thu, 17 Feb 2022 18:02:42 +0900 Subject: Make Set a builtin feature [Feature #16989] --- test/test_set.rb | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'test/test_set.rb') diff --git a/test/test_set.rb b/test/test_set.rb index b92930a445..83e28878a0 100644 --- a/test/test_set.rb +++ b/test/test_set.rb @@ -838,3 +838,42 @@ class TC_Enumerable < Test::Unit::TestCase assert_not_same set, set.to_set { |o| o } end end + +class TC_Set_Builtin < Test::Unit::TestCase + private def should_omit? + Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.2.0') || + !File.exist?(File.expand_path('../prelude.rb', __dir__)) + end + + def test_Set + omit "skipping the test for the builtin Set" if should_omit? + + assert_separately([], "#{<<~"begin;"}\n#{<<~'end;'}") + begin; + assert_nothing_raised do + set = Set.new([1, 2]) + assert_equal('Set', set.class.name) + end + end; + + assert_separately([], "#{<<~"begin;"}\n#{<<~'end;'}") + begin; + assert_nothing_raised do + set = Set[1, 2] + assert_equal('Set', set.class.name) + end + end; + end + + def test_to_set + omit "skipping the test for the builtin Enumerable#to_set" if should_omit? + + assert_separately([], "#{<<~"begin;"}\n#{<<~'end;'}") + begin; + assert_nothing_raised do + set = [1, 2].to_set + assert_equal('Set', set.class.name) + end + end; + end +end -- cgit v1.2.3