diff options
author | duerst <duerst@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-11-28 08:37:32 +0000 |
---|---|---|
committer | duerst <duerst@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-11-28 08:37:32 +0000 |
commit | ad619e02c465eebd15fa57dc658f8e042decdebb (patch) | |
tree | 0bac3a6db831461a32c07aaaa5b845403c7289aa /test | |
parent | bd2fd73196bbff7dc5349c624342e212c09d174e (diff) | |
download | ruby-ad619e02c465eebd15fa57dc658f8e042decdebb.tar.gz |
implement String/Symbol#casecmp? including Unicode case folding
* string.c: Implement String#casecmp? and Symbol#casecmp? by using
String#downcase :fold for Unicode case folding. This does not include
options such as :turkic, because these currently cannot be combined
with the :fold option. This implements feature #12786.
* test/ruby/test_string.rb/test_symbol.rb: Tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_string.rb | 7 | ||||
-rw-r--r-- | test/ruby/test_symbol.rb | 8 |
2 files changed, 15 insertions, 0 deletions
diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb index b1d795e183..90f48e4f08 100644 --- a/test/ruby/test_string.rb +++ b/test/ruby/test_string.rb @@ -2210,6 +2210,13 @@ CODE assert_equal(1, "\u3042B".casecmp("\u3042a")) end + def test_casecmp? + assert_equal(true, 'FoO'.casecmp?('fOO')) + assert_equal(false, 'FoO'.casecmp?('BaR')) + assert_equal(false, 'baR'.casecmp?('FoO')) + assert_equal(true, 'äöü'.casecmp?('ÄÖÜ')) + end + def test_upcase2 assert_equal("\u3042AB", "\u3042aB".upcase) end diff --git a/test/ruby/test_symbol.rb b/test/ruby/test_symbol.rb index d8c91c1eea..24d319211f 100644 --- a/test/ruby/test_symbol.rb +++ b/test/ruby/test_symbol.rb @@ -276,6 +276,14 @@ class TestSymbol < Test::Unit::TestCase assert_nil(:foo.casecmp("foo")) end + def test_casecmp? + assert_equal(true, :FoO.casecmp?(:fOO)) + assert_equal(false, :FoO.casecmp?(:BaR)) + assert_equal(false, :baR.casecmp?(:FoO)) + assert_nil(:foo.casecmp?("foo")) + assert_equal(true, :äöü.casecmp?(:ÄÖÜ)) + end + def test_length assert_equal(3, :FoO.length) assert_equal(3, :FoO.size) |