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:
parent
fa7e514642
commit
c294ed5824
1 changed files with 17 additions and 0 deletions
|
@ -935,4 +935,21 @@ class TestRegexp < Test::Unit::TestCase
|
|||
err = assert_raise(TypeError){ Regexp.quote(42) }
|
||||
assert_equal 'no implicit conversion of Fixnum into String', err.message, bug7539
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue