mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Add spec for MatchData#match and MatchData#match_length [Feature #18172]
This commit is contained in:
parent
5a048829a4
commit
8f41c791b1
2 changed files with 68 additions and 0 deletions
34
spec/ruby/core/matchdata/match_length_spec.rb
Normal file
34
spec/ruby/core/matchdata/match_length_spec.rb
Normal file
|
@ -0,0 +1,34 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
|
||||
require_relative '../../spec_helper'
|
||||
|
||||
ruby_version_is "3.1" do
|
||||
describe "MatchData#match_length" do
|
||||
it "returns the length of the corresponding match when given an Integer" do
|
||||
md = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
||||
|
||||
md.match_length(0).should == 6
|
||||
md.match_length(1).should == 1
|
||||
md.match_length(2).should == 1
|
||||
md.match_length(3).should == 3
|
||||
md.match_length(4).should == 1
|
||||
end
|
||||
|
||||
it "returns nil on non-matching index matches" do
|
||||
md = /\d+(\w)?/.match("THX1138.")
|
||||
md.match_length(1).should == nil
|
||||
end
|
||||
|
||||
it "returns the length of the corresponding named match when given a Symbol" do
|
||||
md = 'haystack'.match(/(?<t>t(?<a>ack))/)
|
||||
md.match_length(:a).should == 3
|
||||
md.match_length(:t).should == 4
|
||||
end
|
||||
|
||||
it "returns nil on non-matching index matches" do
|
||||
md = 'haystack'.match(/(?<t>t)(?<a>all)?/)
|
||||
md.match_length(:t).should == 1
|
||||
md.match_length(:a).should == nil
|
||||
end
|
||||
end
|
||||
end
|
34
spec/ruby/core/matchdata/match_spec.rb
Normal file
34
spec/ruby/core/matchdata/match_spec.rb
Normal file
|
@ -0,0 +1,34 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
|
||||
require_relative '../../spec_helper'
|
||||
|
||||
ruby_version_is "3.1" do
|
||||
describe "MatchData#match" do
|
||||
it "returns the corresponding match when given an Integer" do
|
||||
md = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
||||
|
||||
md.match(0).should == 'HX1138'
|
||||
md.match(1).should == 'H'
|
||||
md.match(2).should == 'X'
|
||||
md.match(3).should == '113'
|
||||
md.match(4).should == '8'
|
||||
end
|
||||
|
||||
it "returns nil on non-matching index matches" do
|
||||
md = /\d+(\w)?/.match("THX1138.")
|
||||
md.match(1).should == nil
|
||||
end
|
||||
|
||||
it "returns the corresponding named match when given a Symbol" do
|
||||
md = 'haystack'.match(/(?<t>t(?<a>ack))/)
|
||||
md.match(:a).should == 'ack'
|
||||
md.match(:t).should == 'tack'
|
||||
end
|
||||
|
||||
it "returns nil on non-matching index matches" do
|
||||
md = 'haystack'.match(/(?<t>t)(?<a>all)?/)
|
||||
md.match(:t).should == 't'
|
||||
md.match(:a).should == nil
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Reference in a new issue