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

test_regexp.rb: test for conditional expression

* test/ruby/test_regexp.rb (TestRegexp#test_conditional_expression):
  test for [Bug #8583]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2013-07-04 04:32:32 +00:00
parent fa7e514642
commit c294ed5824

View file

@ -935,4 +935,21 @@ class TestRegexp < Test::Unit::TestCase
err = assert_raise(TypeError){ Regexp.quote(42) } err = assert_raise(TypeError){ Regexp.quote(42) }
assert_equal 'no implicit conversion of Fixnum into String', err.message, bug7539 assert_equal 'no implicit conversion of Fixnum into String', err.message, bug7539
end end
def test_conditional_expression
bug8583 = '[ruby-dev:47480] [Bug #8583]'
conds = {"xy"=>true, "yx"=>true, "xx"=>false, "yy"=>false}
assert_match_each(/\A((x)|(y))(?(2)y|x)\z/, conds, bug8583)
assert_match_each(/\A((?<x>x)|(?<y>y))(?(<x>)y|x)\z/, conds, bug8583)
end
def assert_match_each(re, conds, msg = nil)
errs = conds.select {|str, match| match ^ (re =~ str)}
msg = message(msg) {
"Expected #{re.inspect} to\n" +
errs.map {|str, match| "\t#{'not ' unless match}match #{str.inspect}"}.join(",\n")
}
assert(errs.empty?, msg)
end
end end