Fixed to work with Ruby test suite (patch from Nobu)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
dblack 2004-03-02 11:21:32 +00:00
Родитель 5aad820604
Коммит 760691ca01
3 изменённых файлов: 56 добавлений и 65 удалений

Просмотреть файл

@ -5,8 +5,7 @@
# Unit tests
#
$:.unshift("..")
require 'scanf'
require 'scanf.rb'
require 'test/unit'
# Comment out either of these lines to skip those tests.
@ -52,7 +51,7 @@ def tests
[ "%f", "z3.2534", [] ],
[ "", "", [] ],
[ "", "abc 123", [] ],
[ '%[^\\\\w]%c', "a...1", [] ],
[ '%[^\\w]%c', "a...1", [] ],
# Testing 'x'
[ "%3x", "0xz", [0] ],
@ -97,13 +96,12 @@ def tests
# mixed integer bases
# various mixed specifiers
[ "%[^\\\\w]%c", "...1", [ "...", "1"] ],
[ '%[^\\\\w]%c', "...1", [ "...", "1"] ],
[ "%[^\\w]%c", "...1", [ "...", "1"] ],
[ '%[^\\w]%c', "...1", [ "...", "1"] ],
[ "%[abc\n]%d", "a\n\nb\n\nc 123", [ "a\n\nb\n\nc", 123 ] ],
[ "%[abc\n]%d", "a\n\nb\n\nc \t 123", [ "a\n\nb\n\nc", 123 ] ],
[ "%[abc\t]%d", "a\t\tb\t\tc 123", [ "a\t\tb\t\tc", 123 ] ],
[ "%d%3[abc\n]", "123a\nbeaab", [ 123, "a\nb" ] ],
[ "%d%3[abc\n]", "123a\\nbeaab", [ 123, "a\nb" ] ],
[ "%d%20c", "42 is the key", [ 42, " is the key" ] ],
[ "%d %20c", "42 is the key", [ 42, "is the key" ] ],
[ "%d%3[^abc\n]%d", "123de\nf123", [ 123, "de" ] ],
@ -164,8 +162,8 @@ def tests
[ "%5c%s", "a\nb\n\nxyz", [ "a\nb\n\n","xyz" ] ],
[ "%s%[ xyz]%d", "hello x 32", ["hello", " x ", 32] ],
[ "%5s%8[a-z]%d", "helloblahblah 32", ["hello", "blahblah", 32] ],
[ '%s%[abcde\\\\s]%d', "hello badea 32", ["hello", " badea ", 32] ],
[ '%d%[\\\\s]%c', "123 \n\t X", [ 123," \n\t ", "X"] ],
[ '%s%[abcde\\s]%d', "hello badea 32", ["hello", " badea ", 32] ],
[ '%d%[\\s]%c', "123 \n\t X", [ 123," \n\t ", "X"] ],
[ "%4s%2c%c", "1.2x\n\ny", [ "1.2x", "\n\n","y"] ],
[ "%f%c %3c%d", "1.2x\n\ny123", [ 1.2, "x", "y12", 3 ] ],
[ "%s%5c", "abc ab\ncd", [ "abc", " ab\nc" ] ],
@ -271,7 +269,7 @@ def tests
# Testing 'f'
[ "%2f", "x", [0.0] ], # width-floats match anything (by design)
# [ "%f", "1.23e45", [1.23e+45] ],
[ "%f", "1.23e45", [1.23e+45] ],
[ "%f", "3.25ee", [3.25] ],
[ "%f", "3..25", [3.0] ],
[ "%f", "+3.25", [3.25] ],
@ -285,21 +283,13 @@ class TestStringScanf
include Scanf
extend ScanfTests
def tes_f
assert_equal(1.23e45.to_s, "1.23e45".scanf("%f")[0].to_s)
end
i = 1
tests = self.tests
tests.each do |test|
eval <<-EOE
def test_#{i}
assert_equal(#{test[2].inspect},"#{test[1]}".scanf("#{test[0]}"))
self.tests.each do |test|
define_method("test_#{i}") do ||
assert_equal(test[2], test[1].scanf(test[0]))
end
EOE
i += 1
end
end
class TestIOScanf
@ -307,18 +297,14 @@ class TestIOScanf
extend ScanfTests
i = 1
tests = self.tests
tests.each do |test|
str = <<-EOE
def test_#{i}
File.open("iotest.dat", "w") { |fh| fh.print "#{test[1]}" }
self.tests.each do |test|
define_method("test_#{i}") do ||
File.open("iotest.dat", "w") {|fh| fh.print test[1]}
File.open("iotest.dat", "r") { |fh|
assert_equal(#{test[2].inspect},fh.scanf("#{test[0]}"))
assert_equal(test[2], fh.scanf(test[0]))
}
File.delete("iotest.dat")
end
EOE
eval str
i += 1
end
end

Просмотреть файл

@ -5,11 +5,10 @@
# Some not very comprehensive tests of block behavior.
$:.unshift("..")
require 'test/unit'
require 'scanf.rb'
require 'scanf'
class TestMe < Test::Unit::TestCase
class TestScanfBlock < Test::Unit::TestCase
def setup
@str = <<-EOS
@ -61,7 +60,8 @@ alias set_up setup
"Scarlatti was born in 1685.",
"Brahms was born in 1833." ],res)
fh.close
# File.delete("iotest.dat")
ensure
File.delete("iotest.dat")
end
def test_io2
@ -71,7 +71,8 @@ alias set_up setup
fh.seek(0)
assert_equal(fh.scanf("%d%f%s") {}, [])
fh.close
# File.delete("iotest.dat")
ensure
File.delete("iotest.dat")
end
end

Просмотреть файл

@ -5,11 +5,15 @@
# Ad hoc tests of IO#scanf (needs to be expanded)
$:.unshift("..")
require "scanf.rb"
require "scanf"
class TestScanfIO
def test_io
fh = File.new(File.join(File.dirname(__FILE__), "data.txt"), "r")
assert_equal(0, fh.pos)
assert_equal(["this", "is"], fh.scanf("%s%s"))
assert_equal([33, "littel"], fh.scanf("%da fun%s"))
#p fh.pos
end
end
fh = File.new("data.txt", "r")
p fh.pos
p fh.scanf("%s%s")
p fh.scanf("%da fun%s")
p fh.pos