summaryrefslogtreecommitdiff
path: root/test/ruby/enc/test_utf16.rb
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-23 12:27:35 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-23 12:27:35 +0000
commite7e5b731c2033b337f4e2c9ac373f67e132694a0 (patch)
treee096f4cd38c5e0a09a0bbfe85d0f38a5a7e37fa4 /test/ruby/enc/test_utf16.rb
parent55783c696d97082f9163e1c6cc8241998f27b48d (diff)
* string.c (rb_str_casecmp): make the ordering consistent with
String#<=>. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/enc/test_utf16.rb')
-rw-r--r--test/ruby/enc/test_utf16.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/ruby/enc/test_utf16.rb b/test/ruby/enc/test_utf16.rb
index 30dbb2e886..c949c1e293 100644
--- a/test/ruby/enc/test_utf16.rb
+++ b/test/ruby/enc/test_utf16.rb
@@ -368,4 +368,17 @@ EOT
r = Regexp.new(Regexp.escape(s))
assert(r =~ s, "#{encdump(r)} =~ #{encdump(s)}")
end
+
+ def test_casecmp
+ assert_equal(0, "\0A".force_encoding("UTF-16BE").casecmp("\0a".force_encoding("UTF-16BE")))
+ assert_not_equal(0, "\0A".force_encoding("UTF-16LE").casecmp("\0a".force_encoding("UTF-16LE")))
+ assert_not_equal(0, "A\0".force_encoding("UTF-16BE").casecmp("a\0".force_encoding("UTF-16BE")))
+ assert_equal(0, "A\0".force_encoding("UTF-16LE").casecmp("a\0".force_encoding("UTF-16LE")))
+
+ ary = ["01".force_encoding("UTF-16LE"),
+ "10".force_encoding("UTF-16LE")]
+ e = ary.sort {|x,y| x <=> y }
+ a = ary.sort {|x,y| x.casecmp(y) }
+ assert_equal(e, a)
+ end
end