1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
require 'test/unit'
class TestStringPrintf < Test::Unit::TestCase
##### binary (%b) #####
def test_binary
assert_equal("101", "%b" % 5)
assert_equal("101", "%b" % "5")
assert_equal("1011010111100110001000001111010010000000000101", "%b" % 50000000000005)
assert_equal("101111000001010000111111101001001110001001010000111010110011000100010111110110010101010110100000000000000000000000000000000000101", "%b" % 500000000000000000000000000000000000005)
assert_equal(" 101", "% b" % 5)
assert_equal("-101", "% b" % -5)
assert_equal(" -101", "% 5b" % -5)
assert_equal("101", "%1b" % 5)
assert_equal("00101", "%.5b" % 5)
assert_equal("00101", "%05b" % 5)
assert_equal("11011", "%05b" % -5)
assert_equal("101", "%b" % 5.5)
assert_equal("0b101", "%#b" % 5)
assert_equal("0b..1011", "%#b" % -5)
assert_equal("+101", "%+b" % 5)
assert_equal("101 ", "%-5b" % 5)
assert_equal("0", "%b" % nil)
assert_equal("%b" % :howdy.to_i, "%b" % :howdy)
assert_raises(ArgumentError) {"%b" % "a"}
assert_raises(TypeError) {"%b" % true}
assert_raises(TypeError) {"%b" % [[1, 2]]}
assert_raises(TypeError) {"%b" % {'A' => 1}}
end
##### char (%c) #####
def test_char
assert_equal("A", "%c" % 65)
assert_equal("m", "%c" % 365)
assert_equal("[", "%c" % -165)
assert_equal("A", "% c" % 65)
assert_equal("A", "%0c" % 65)
assert_equal("A", "%.5c" % 65)
assert_equal("A", "%#c" % 65)
assert_equal("A", "%+c" % 65)
assert_equal(" A", "%5c" % 65)
assert_equal(" A", "%05c" % 65)
assert_equal("A ", "%-5c" % 65)
assert_equal("A", "%c" % 65.8)
assert_equal("%c" % :howdy.to_i, "%c" % :howdy)
# FIXME: validity of test pending decision on
# MRI vs. YARV compliance
# assert_raises(TypeError) {"%c" % "65"}
assert_raises(TypeError) {"%c" % true}
assert_raises(TypeError) {"%c" % nil}
assert_raises(TypeError) {"%c" % [[1, 2]]}
assert_raises(TypeError) {"%c" % {'A' => 1}}
assert_raises(RangeError) {"%c" % 500000000000000000000000000000000000005}
end
##### inspect (%p) #####
def test_inspect
assert_equal("65", "%p" % ?A)
assert_equal('"howdy"', "%p" % 'howdy')
assert_equal(":howdy", "%p" % :howdy)
assert_equal("[1, 2]", "%p" % [[1,2]])
assert_equal('{"A"=>1}', "%p" % {'A' => 1})
assert_equal(" 65", "%5p" % ?A)
assert_equal(" 65", "%05p" % ?A)
assert_equal("65 ", "%-5p" % ?A)
assert_equal(" nil", "%5p" % nil)
end
def strangePrintf
game = '41181 jpa:awh'
opponent = game.scan("jpa")[0]
sprintf "%s", opponent
end
def testStrangePrintf
assert_equal('jpa', strangePrintf)
end
end
|