From aaf5d9c03cd41818edb34a154ac570b7fe61687c Mon Sep 17 00:00:00 2001 From: nahi Date: Thu, 4 Sep 2003 16:18:59 +0000 Subject: * test/ruby: tests for ruby itself. * test/ruby/test_*.rb: split sample/test.rb into 28 test/unit testcases. some tests could not be translates... search '!!' mark to see it. * test/csv/test_csv.rb: should require 'csv', not '../lib/csv'. test runner should set load path correctly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_stringchar.rb | 116 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 test/ruby/test_stringchar.rb (limited to 'test/ruby/test_stringchar.rb') diff --git a/test/ruby/test_stringchar.rb b/test/ruby/test_stringchar.rb new file mode 100644 index 0000000000..498300f379 --- /dev/null +++ b/test/ruby/test_stringchar.rb @@ -0,0 +1,116 @@ +require 'test/unit' + +$KCODE = 'none' + +class TestStringchar < Test::Unit::TestCase + def test_stringchar + assert("abcd" == "abcd") + assert("abcd" =~ /abcd/) + assert("abcd" === "abcd") + # compile time string concatenation + assert("ab" "cd" == "abcd") + assert("#{22}aa" "cd#{44}" == "22aacd44") + assert("#{22}aa" "cd#{44}" "55" "#{66}" == "22aacd445566") + assert("abc" !~ /^$/) + assert("abc\n" !~ /^$/) + assert("abc" !~ /^d*$/) + assert(("abc" =~ /d*$/) == 3) + assert("" =~ /^$/) + assert("\n" =~ /^$/) + assert("a\n\n" =~ /^$/) + assert("abcabc" =~ /.*a/ && $& == "abca") + assert("abcabc" =~ /.*c/ && $& == "abcabc") + assert("abcabc" =~ /.*?a/ && $& == "a") + assert("abcabc" =~ /.*?c/ && $& == "abc") + assert(/(.|\n)*?\n(b|\n)/ =~ "a\nb\n\n" && $& == "a\nb") + + assert(/^(ab+)+b/ =~ "ababb" && $& == "ababb") + assert(/^(?:ab+)+b/ =~ "ababb" && $& == "ababb") + assert(/^(ab+)+/ =~ "ababb" && $& == "ababb") + assert(/^(?:ab+)+/ =~ "ababb" && $& == "ababb") + + assert(/(\s+\d+){2}/ =~ " 1 2" && $& == " 1 2") + assert(/(?:\s+\d+){2}/ =~ " 1 2" && $& == " 1 2") + + $x = <') == "") + + # character constants(assumes ASCII) + assert("a"[0] == ?a) + assert(?a == ?a) + assert(?\C-a == 1) + assert(?\M-a == 225) + assert(?\M-\C-a == 129) + assert("a".upcase![0] == ?A) + assert("A".downcase![0] == ?a) + assert("abc".tr!("a-z", "A-Z") == "ABC") + assert("aabbcccc".tr_s!("a-z", "A-Z") == "ABC") + assert("abcc".squeeze!("a-z") == "abc") + assert("abcd".delete!("bc") == "ad") + + $x = "abcdef" + $y = [ ?a, ?b, ?c, ?d, ?e, ?f ] + $bad = false + $x.each_byte {|i| + if i != $y.shift + $bad = true + break + end + } + assert(!$bad) + + s = "a string" + s[0..s.size]="another string" + assert(s == "another string") + + s = <