From a160986d90cf90a86e01d60eddb04ffe0e584c36 Mon Sep 17 00:00:00 2001 From: naruse Date: Fri, 15 Oct 2010 08:28:12 +0000 Subject: * sprintf.c (rb_str_format): fix: sprintf with hex format and precision includes wrong dots. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_sprintf.rb | 10 ++++++---- test/ruby/test_sprintf_comb.rb | 6 +++--- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'test/ruby') diff --git a/test/ruby/test_sprintf.rb b/test/ruby/test_sprintf.rb index 96a1b62bb7..24b6a34b3a 100644 --- a/test/ruby/test_sprintf.rb +++ b/test/ruby/test_sprintf.rb @@ -24,12 +24,12 @@ class TestSprintf < Test::Unit::TestCase assert_equal("0000", sprintf("%.4b", 0)) assert_equal("0001", sprintf("%.4b", 1)) assert_equal("0010", sprintf("%.4b", 2)) - assert_equal("..11", sprintf("%.4b", -1)) + assert_equal("1111", sprintf("%.4b", -1)) assert_equal(" 0000", sprintf("%6.4b", 0)) assert_equal(" 0001", sprintf("%6.4b", 1)) assert_equal(" 0010", sprintf("%6.4b", 2)) - assert_equal(" ..11", sprintf("%6.4b", -1)) + assert_equal(" 1111", sprintf("%6.4b", -1)) assert_equal(" 0", sprintf("%#4b", 0)) assert_equal(" 0b1", sprintf("%#4b", 1)) @@ -44,12 +44,12 @@ class TestSprintf < Test::Unit::TestCase assert_equal("0000", sprintf("%#.4b", 0)) assert_equal("0b0001", sprintf("%#.4b", 1)) assert_equal("0b0010", sprintf("%#.4b", 2)) - assert_equal("0b..11", sprintf("%#.4b", -1)) + assert_equal("0b1111", sprintf("%#.4b", -1)) assert_equal(" 0000", sprintf("%#6.4b", 0)) assert_equal("0b0001", sprintf("%#6.4b", 1)) assert_equal("0b0010", sprintf("%#6.4b", 2)) - assert_equal("0b..11", sprintf("%#6.4b", -1)) + assert_equal("0b1111", sprintf("%#6.4b", -1)) assert_equal("+0", sprintf("%+b", 0)) assert_equal("+1", sprintf("%+b", 1)) @@ -288,6 +288,8 @@ class TestSprintf < Test::Unit::TestCase b1 = (/\.\./ =~ s1) != nil b2 = (/\.\./ =~ s2) != nil assert(b1 == b2, "[ruby-dev:33224]") + + assert_equal("ffffffff", sprintf("%.8x", -1)) end def test_named diff --git a/test/ruby/test_sprintf_comb.rb b/test/ruby/test_sprintf_comb.rb index 261732bcbc..3105127046 100644 --- a/test/ruby/test_sprintf_comb.rb +++ b/test/ruby/test_sprintf_comb.rb @@ -190,7 +190,7 @@ class TestSprintfComb < Test::Unit::TestCase if digits.last != radix-1 digits << (radix-1) end - sign = '..' + sign = '..' unless precision else sign = '-' end @@ -222,8 +222,8 @@ class TestSprintfComb < Test::Unit::TestCase end end if type == 'o' && hs - if digits.empty? || digits.last != d - digits << d + if digits.empty? || digits.last != 0 + prefix = '0' end end -- cgit v1.2.3