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

* ext/strscan/strscan.c: new method StringScanner#initialize_copy to allow #dup and #clone.

* test/strscan/test_strscan.rb: test StringScanner#dup.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
aamine 2004-03-05 11:20:12 +00:00
parent 87275504ab
commit 492dfc7c08
3 changed files with 104 additions and 1 deletions

View file

@ -45,6 +45,44 @@ class TestStringScanner < Test::Unit::TestCase
}
end
def test_dup
s = StringScanner.new('test string')
d = s.dup
assert_equal s.inspect, d.inspect
assert_equal s.string, d.string
assert_equal s.pos, d.pos
assert_equal s.matched?, d.matched?
assert_equal s.eos?, d.eos?
s = StringScanner.new('test string')
s.scan(/test/)
d = s.dup
assert_equal s.inspect, d.inspect
assert_equal s.string, d.string
assert_equal s.pos, d.pos
assert_equal s.matched?, d.matched?
assert_equal s.eos?, d.eos?
s = StringScanner.new('test string')
s.scan(/test/)
s.scan(/NOT MATCH/)
d = s.dup
assert_equal s.inspect, d.inspect
assert_equal s.string, d.string
assert_equal s.pos, d.pos
assert_equal s.matched?, d.matched?
assert_equal s.eos?, d.eos?
s = StringScanner.new('test string')
s.terminate
d = s.dup
assert_equal s.inspect, d.inspect
assert_equal s.string, d.string
assert_equal s.pos, d.pos
assert_equal s.matched?, d.matched?
assert_equal s.eos?, d.eos?
end
def test_const_Version
assert_instance_of String, StringScanner::Version
assert_equal true, StringScanner::Version.frozen?
@ -484,4 +522,27 @@ class TestStringScanner < Test::Unit::TestCase
s.reset
assert_equal 0, s.pos
end
def test_matched_size
s = StringScanner.new('test string')
assert_nil s.matched_size
s.scan(/test/)
assert_equal 4, s.matched_size
assert_equal 4, s.matched_size
s.scan(//)
assert_equal 0, s.matched_size
s.scan(/x/)
assert_nil s.matched_size
assert_nil s.matched_size
s.terminate
assert_nil s.matched_size
# obsolete
s = StringScanner.new('test string')
assert_nil s.matchedsize
s.scan(/test/)
assert_equal 4, s.matched_size
s.terminate
assert_nil s.matched_size
end
end