ruby-changes:44982
From: nobu <ko1@a...>
Date: Mon, 12 Dec 2016 12:20:00 +0900 (JST)
Subject: [ruby-changes:44982] nobu:r57055 (trunk): test for Symbol#match? [Feature #12898]
nobu 2016-12-12 12:19:52 +0900 (Mon, 12 Dec 2016) New Revision: 57055 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=57055 Log: test for Symbol#match? [Feature #12898] Modified files: trunk/test/ruby/test_symbol.rb Index: test/ruby/test_symbol.rb =================================================================== --- test/ruby/test_symbol.rb (revision 57054) +++ test/ruby/test_symbol.rb (revision 57055) @@ -325,6 +325,48 @@ class TestSymbol < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_symbol.rb#L325 assert_raise(ArgumentError) { :"foo".match } end + def test_match_p_regexp + /backref/ =~ 'backref' + # must match here, but not in a separate method, e.g., assert_send, + # to check if $~ is affected or not. + assert_equal(true, "".match?(//)) + assert_equal(true, :abc.match?(/.../)) + assert_equal(true, 'abc'.match?(/b/)) + assert_equal(true, 'abc'.match?(/b/, 1)) + assert_equal(true, 'abc'.match?(/../, 1)) + assert_equal(true, 'abc'.match?(/../, -2)) + assert_equal(false, 'abc'.match?(/../, -4)) + assert_equal(false, 'abc'.match?(/../, 4)) + assert_equal(true, ("\u3042" + '\x').match?(/../, 1)) + assert_equal(true, ''.match?(/\z/)) + assert_equal(true, 'abc'.match?(/\z/)) + assert_equal(true, 'Ruby'.match?(/R.../)) + assert_equal(false, 'Ruby'.match?(/R.../, 1)) + assert_equal(false, 'Ruby'.match?(/P.../)) + assert_equal('backref', $&) + end + + def test_match_p_string + /backref/ =~ 'backref' + # must match here, but not in a separate method, e.g., assert_send, + # to check if $~ is affected or not. + assert_equal(true, "".match?('')) + assert_equal(true, :abc.match?('...')) + assert_equal(true, 'abc'.match?('b')) + assert_equal(true, 'abc'.match?('b', 1)) + assert_equal(true, 'abc'.match?('..', 1)) + assert_equal(true, 'abc'.match?('..', -2)) + assert_equal(false, 'abc'.match?('..', -4)) + assert_equal(false, 'abc'.match?('..', 4)) + assert_equal(true, ("\u3042" + '\x').match?('..', 1)) + assert_equal(true, ''.match?('\z')) + assert_equal(true, 'abc'.match?('\z')) + assert_equal(true, 'Ruby'.match?('R...')) + assert_equal(false, 'Ruby'.match?('R...', 1)) + assert_equal(false, 'Ruby'.match?('P...')) + assert_equal('backref', $&) + end + def test_symbol_popped assert_nothing_raised { eval('a = 1; :"#{ a }"; 1') } end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/