From 0dc342de848a642ecce8db697b8fecd83a63e117 Mon Sep 17 00:00:00 2001 From: yugui Date: Mon, 25 Aug 2008 15:02:05 +0000 Subject: added tag v1_9_0_4 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- trunk/test/scanf/test_scanfblocks.rb | 81 ++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 trunk/test/scanf/test_scanfblocks.rb (limited to 'trunk/test/scanf/test_scanfblocks.rb') diff --git a/trunk/test/scanf/test_scanfblocks.rb b/trunk/test/scanf/test_scanfblocks.rb new file mode 100644 index 0000000000..907a3c2838 --- /dev/null +++ b/trunk/test/scanf/test_scanfblocks.rb @@ -0,0 +1,81 @@ +# $Id$ +# +# scanf for Ruby +# +# Some not very comprehensive tests of block behavior. + + +require 'test/unit' +require 'scanf' +require 'tmpdir' + +class TestScanfBlock < Test::Unit::TestCase + + def setup + @str = <<-EOS + Beethoven 1770 + Bach 1685 + Handel 1685 + Scarlatti 1685 + Brahms 1833 + EOS + end + +alias set_up setup + def test_str1 + res = @str.scanf("%s%d") { |name, year| "#{name} was born in #{year}." } + assert_equal(res, + [ "Beethoven was born in 1770.", + "Bach was born in 1685.", + "Handel was born in 1685.", + "Scarlatti was born in 1685.", + "Brahms was born in 1833." ]) + end + + def test_str2 + names = @str.scanf("%s%d") { |name, year| name.upcase } + assert_equal(names, ["BEETHOVEN", "BACH", "HANDEL", "SCARLATTI", "BRAHMS"]) + end + + def test_str3 + assert_equal("".scanf("%d%f%s") {}, []) + end + + def test_str4 + assert_equal("abc".scanf("%d%f%s") {}, []) + end + + def test_str5 + assert_equal("abc".scanf("") {}, []) + end + + def test_io1 + fn = "#{Dir.tmpdir}/iotest.dat.#{$$}" + File.open(fn, "w") { |fh| fh.puts(@str) } + fh = File.open(fn, "rb") + res = fh.scanf("%s%d") { |name, year| "#{name} was born in #{year}." } + + assert_equal( + [ "Beethoven was born in 1770.", + "Bach was born in 1685.", + "Handel was born in 1685.", + "Scarlatti was born in 1685.", + "Brahms was born in 1833." ],res) + fh.close + ensure + File.delete(fn) + end + + def test_io2 + fn = "#{Dir.tmpdir}/iotest.dat.#{$$}" + File.open(fn, "w").close + fh = File.open(fn,"rb") + assert_equal(fh.scanf("") {}, []) + fh.seek(0) + assert_equal(fh.scanf("%d%f%s") {}, []) + fh.close + ensure + File.delete(fn) + end + +end -- cgit v1.2.3