summaryrefslogtreecommitdiff
path: root/test/ruby/test_string.rb
blob: 0ce33fdf19e89a69e0ef834d923e8d39a1d0c06e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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")
    8.upto(70) {|bits|
      check_sum("xyz", bits)
    }
  end
end