mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
74bdae9e4c
The difference from CRuby's Encoding: - Encoding is a module, instead of a class - each Encoding (e.g. `Encoding::UTF_8) is a string instead of Encoding object - only supports `UTF-8` and `ASCII-8BIT` (and its alias `BINARY`) Using this gem automatically turn on `MRB_UTF8_STRING` support.
28 lines
953 B
Ruby
28 lines
953 B
Ruby
assert('Integer#chr') do
|
|
assert_equal("A", 65.chr)
|
|
assert_equal("B", 0x42.chr)
|
|
assert_equal("\xab", 171.chr)
|
|
assert_raise(RangeError) { -1.chr }
|
|
assert_raise(RangeError) { 256.chr }
|
|
|
|
assert_equal("A", 65.chr("ASCII-8BIT"))
|
|
assert_equal("B", 0x42.chr("BINARY"))
|
|
assert_equal("\xab", 171.chr("ascii-8bit"))
|
|
assert_raise(RangeError) { -1.chr("binary") }
|
|
assert_raise(RangeError) { 256.chr("Ascii-8bit") }
|
|
assert_raise(ArgumentError) { 65.chr("ASCII") }
|
|
assert_raise(ArgumentError) { 65.chr("ASCII-8BIT", 2) }
|
|
assert_raise(TypeError) { 65.chr(:BINARY) }
|
|
|
|
if __ENCODING__ == "ASCII-8BIT"
|
|
assert_raise(ArgumentError) { 65.chr("UTF-8") }
|
|
else
|
|
assert_equal("A", 65.chr("UTF-8"))
|
|
assert_equal("B", 0x42.chr("UTF-8"))
|
|
assert_equal("«", 171.chr("utf-8"))
|
|
assert_equal("あ", 12354.chr("Utf-8"))
|
|
assert_raise(RangeError) { -1.chr("utf-8") }
|
|
assert_raise(RangeError) { 0x110000.chr.chr("UTF-8") }
|
|
end
|
|
end
|