From 798ce2372ba60918a5b7427c1bc8676fc727f9de Mon Sep 17 00:00:00 2001 From: aamine Date: Fri, 5 Mar 2004 11:20:12 +0000 Subject: * 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: http://svn.ruby-lang.org/repos/ruby/trunk@5889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/strscan/test_stringscanner.rb | 61 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'test/strscan') diff --git a/test/strscan/test_stringscanner.rb b/test/strscan/test_stringscanner.rb index 72961efd6..deb05d29a 100644 --- a/test/strscan/test_stringscanner.rb +++ b/test/strscan/test_stringscanner.rb @@ -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 -- cgit