mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
933fb96a12
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
77 lines
1.7 KiB
Ruby
77 lines
1.7 KiB
Ruby
# $Id$
|
|
#
|
|
# scanf for Ruby
|
|
#
|
|
# Some not very comprehensive tests of block behavior.
|
|
|
|
|
|
$:.unshift("..")
|
|
require 'test/unit'
|
|
require 'scanf.rb'
|
|
|
|
class TestMe < 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
|
|
File.open("iotest.dat", "w") { |fh| fh.puts(@str) }
|
|
fh = File.open("iotest.dat", "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
|
|
# File.delete("iotest.dat")
|
|
end
|
|
|
|
def test_io2
|
|
File.open("iotest.dat", "w").close
|
|
fh = File.open("iotest.dat","rb")
|
|
assert_equal(fh.scanf("") {}, [])
|
|
fh.seek(0)
|
|
assert_equal(fh.scanf("%d%f%s") {}, [])
|
|
fh.close
|
|
# File.delete("iotest.dat")
|
|
end
|
|
|
|
end
|