зеркало из https://github.com/github/ruby.git
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:
Родитель
5aad820604
Коммит
760691ca01
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче