[439] | 1 | # coding: utf-8
|
---|
[270] | 2 | ##
|
---|
| 3 | # Symbol(Ext) Test
|
---|
| 4 |
|
---|
[439] | 5 | if Symbol.respond_to?(:all_symbols)
|
---|
| 6 | assert('Symbol.all_symbols') do
|
---|
| 7 | foo = [:__symbol_test_1, :__symbol_test_2, :__symbol_test_3].sort
|
---|
| 8 | symbols = Symbol.all_symbols.select{|sym|sym.to_s.include? '__symbol_test'}.sort
|
---|
| 9 | assert_equal foo, symbols
|
---|
| 10 | end
|
---|
[270] | 11 | end
|
---|
| 12 |
|
---|
[439] | 13 | %w[size length].each do |n|
|
---|
| 14 | assert("Symbol##{n}") do
|
---|
| 15 | assert_equal 5, :hello.__send__(n)
|
---|
| 16 | assert_equal 4, :"aA\0b".__send__(n)
|
---|
| 17 | if __ENCODING__ == "UTF-8"
|
---|
| 18 | assert_equal 8, :"こんにちは世界!".__send__(n)
|
---|
| 19 | assert_equal 4, :"aあ\0b".__send__(n)
|
---|
| 20 | else
|
---|
| 21 | assert_equal 22, :"こんにちは世界!".__send__(n)
|
---|
| 22 | assert_equal 6, :"aあ\0b".__send__(n)
|
---|
| 23 | end
|
---|
| 24 | end
|
---|
[270] | 25 | end
|
---|
| 26 |
|
---|
| 27 | assert("Symbol#capitalize") do
|
---|
| 28 | assert_equal :Hello, :hello.capitalize
|
---|
| 29 | assert_equal :Hello, :HELLO.capitalize
|
---|
| 30 | assert_equal :Hello, :Hello.capitalize
|
---|
| 31 | end
|
---|
| 32 |
|
---|
| 33 | assert("Symbol#downcase") do
|
---|
| 34 | assert_equal :hello, :hEllO.downcase
|
---|
| 35 | assert_equal :hello, :hello.downcase
|
---|
| 36 | end
|
---|
| 37 |
|
---|
| 38 | assert("Symbol#upcase") do
|
---|
| 39 | assert_equal :HELLO, :hEllO.upcase
|
---|
| 40 | assert_equal :HELLO, :HELLO.upcase
|
---|
| 41 | end
|
---|
| 42 |
|
---|
| 43 | assert("Symbol#casecmp") do
|
---|
| 44 | assert_equal 0, :HELLO.casecmp(:hEllO)
|
---|
| 45 | assert_equal 1, :HELLO.casecmp(:hEllN)
|
---|
| 46 | assert_equal(-1, :HELLO.casecmp(:hEllP))
|
---|
| 47 | assert_nil :HELLO.casecmp("hEllO")
|
---|
| 48 | end
|
---|
| 49 |
|
---|
| 50 | assert("Symbol#empty?") do
|
---|
| 51 | assert_true :''.empty?
|
---|
| 52 | end
|
---|
| 53 |
|
---|
| 54 | assert('Symbol#intern') do
|
---|
| 55 | assert_equal :test, :test.intern
|
---|
| 56 | end
|
---|