1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/ruby/test_string.rb
shyouhei b3c42a2e41 merge revision(s) 26103:
* string.c (rb_str_inspect): wrong result of UTF-8 inspect because of
	  the mistake of calculation.  reported by eban via IRC.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@27145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-01 07:11:40 +00:00

32 lines
726 B
Ruby

require 'test/unit'
class TestString < Test::Unit::TestCase
def check_sum(str, bits=16)
sum = 0
str.each_byte {|c| sum += c}
sum = sum & ((1 << bits) - 1) if bits != 0
assert_equal(sum, str.sum(bits))
end
def test_sum
assert_equal(0, "".sum)
assert_equal(294, "abc".sum)
check_sum("abc")
check_sum("\x80")
0.upto(70) {|bits|
check_sum("xyz", bits)
}
end
def test_inspect
original_kcode = $KCODE
$KCODE = 'n'
assert_equal('"\343\201\202"', "\xe3\x81\x82".inspect)
$KCODE = 'u'
assert_equal("\"\343\201\202\"", "\xe3\x81\x82".inspect)
assert_no_match(/\0/, "\xe3\x81".inspect, '[ruby-dev:39550]')
ensure
$KCODE = original_kcode
end
end