summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_string.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb
new file mode 100644
index 000000000..0ce33fdf1
--- /dev/null
+++ b/test/ruby/test_string.rb
@@ -0,0 +1,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