summaryrefslogtreecommitdiff
path: root/spec/rubyspec/core/integer/chr_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/core/integer/chr_spec.rb')
-rw-r--r--spec/rubyspec/core/integer/chr_spec.rb239
1 files changed, 0 insertions, 239 deletions
diff --git a/spec/rubyspec/core/integer/chr_spec.rb b/spec/rubyspec/core/integer/chr_spec.rb
deleted file mode 100644
index 50a678608e..0000000000
--- a/spec/rubyspec/core/integer/chr_spec.rb
+++ /dev/null
@@ -1,239 +0,0 @@
-require File.expand_path('../../../spec_helper', __FILE__)
-
-describe "Integer#chr without argument" do
- it "returns a String" do
- 17.chr.should be_an_instance_of(String)
- end
-
- it "returns a new String for each call" do
- 82.chr.should_not equal(82.chr)
- end
-
- it "raises a RangeError is self is less than 0" do
- lambda { -1.chr }.should raise_error(RangeError)
- lambda { -bignum_value.chr }.should raise_error(RangeError)
- end
-
- describe "when Encoding.default_internal is nil" do
- describe "and self is between 0 and 127 (inclusive)" do
- it "returns a US-ASCII String" do
- (0..127).each do |c|
- c.chr.encoding.should == Encoding::US_ASCII
- end
- end
-
- it "returns a String encoding self interpreted as a US-ASCII codepoint" do
- (0..127).each do |c|
- c.chr.bytes.to_a.should == [c]
- end
- end
- end
-
- describe "and self is between 128 and 255 (inclusive)" do
- it "returns an ASCII-8BIT String" do
- (128..255).each do |c|
- c.chr.encoding.should == Encoding::ASCII_8BIT
- end
- end
-
- it "returns a String containing self interpreted as a byte" do
- (128..255).each do |c|
- c.chr.bytes.to_a.should == [c]
- end
- end
- end
-
- it "raises a RangeError is self is greater than 255" do
- lambda { 256.chr }.should raise_error(RangeError)
- lambda { bignum_value.chr }.should raise_error(RangeError)
- end
- end
-
- describe "when Encoding.default_internal is not nil" do
- before do
- @default_internal = Encoding.default_internal
- end
-
- after do
- Encoding.default_internal = @default_internal
- end
-
- describe "and self is between 0 and 127 (inclusive)" do
- it "returns a US-ASCII String" do
- (0..127).each do |c|
- Encoding.default_internal = Encoding::UTF_8
- c.chr.encoding.should == Encoding::US_ASCII
-
- Encoding.default_internal = Encoding::SHIFT_JIS
- c.chr.encoding.should == Encoding::US_ASCII
- end
- end
-
- it "returns a String encoding self interpreted as a US-ASCII codepoint" do
- (0..127).each do |c|
- Encoding.default_internal = Encoding::UTF_8
- c.chr.bytes.to_a.should == [c]
-
- Encoding.default_internal = Encoding::SHIFT_JIS
- c.chr.bytes.to_a.should == [c]
- end
- end
- end
-
- describe "and self is between 128 and 255 (inclusive)" do
- it "returns an ASCII-8BIT String" do
- (128..255).each do |c|
- Encoding.default_internal = Encoding::UTF_8
- c.chr.encoding.should == Encoding::ASCII_8BIT
-
- Encoding.default_internal = Encoding::SHIFT_JIS
- c.chr.encoding.should == Encoding::ASCII_8BIT
- end
- end
-
- it "returns a String containing self interpreted as a byte" do
- (128..255).each do |c|
- Encoding.default_internal = Encoding::UTF_8
- c.chr.bytes.to_a.should == [c]
-
- Encoding.default_internal = Encoding::SHIFT_JIS
- c.chr.bytes.to_a.should == [c]
- end
- end
- end
-
- describe "and self is greater than 255" do
- it "returns a String with the default internal encoding" do
- Encoding.default_internal = Encoding::UTF_8
- 0x0100.chr.encoding.should == Encoding::UTF_8
- 0x3000.chr.encoding.should == Encoding::UTF_8
-
- Encoding.default_internal = Encoding::SHIFT_JIS
- 0x8140.chr.encoding.should == Encoding::SHIFT_JIS
- 0xFC4B.chr.encoding.should == Encoding::SHIFT_JIS
- end
-
- it "returns a String encoding self interpreted as a codepoint in the default internal encoding" do
- Encoding.default_internal = Encoding::UTF_8
- 0x0100.chr.bytes.to_a.should == [0xC4, 0x80]
- 0x3000.chr.bytes.to_a.should == [0xE3, 0x80, 0x80]
-
- Encoding.default_internal = Encoding::SHIFT_JIS
- 0x8140.chr.bytes.to_a.should == [0x81, 0x40] # Smallest assigned CP932 codepoint greater than 255
- 0xFC4B.chr.bytes.to_a.should == [0xFC, 0x4B] # Largest assigned CP932 codepoint
- end
-
- # #5864
- it "raises RangeError if self is invalid as a codepoint in the default internal encoding" do
- [ [0x0100, "US-ASCII"],
- [0x0100, "ASCII-8BIT"],
- [0x0100, "EUC-JP"],
- [0xA1A0, "EUC-JP"],
- [0x0100, "ISO-8859-9"],
- [620, "TIS-620"]
- ].each do |integer, encoding_name|
- Encoding.default_internal = Encoding.find(encoding_name)
- lambda { integer.chr }.should raise_error(RangeError)
- end
- end
- end
- end
-end
-
-describe "Integer#chr with an encoding argument" do
- it "returns a String" do
- 900.chr(Encoding::UTF_8).should be_an_instance_of(String)
- end
-
- it "returns a new String for each call" do
- 8287.chr(Encoding::UTF_8).should_not equal(8287.chr(Encoding::UTF_8))
- end
-
- it "accepts a String as an argument" do
- lambda { 0xA4A2.chr('euc-jp') }.should_not raise_error
- end
-
- it "converts a String to an Encoding as Encoding.find does" do
- ['utf-8', 'UTF-8', 'Utf-8'].each do |encoding|
- 7894.chr(encoding).encoding.should == Encoding::UTF_8
- end
- end
-
- # http://redmine.ruby-lang.org/issues/4869
- it "raises a RangeError is self is less than 0" do
- lambda { -1.chr(Encoding::UTF_8) }.should raise_error(RangeError)
- lambda { -bignum_value.chr(Encoding::EUC_JP) }.should raise_error(RangeError)
- end
-
- it "returns a String with the specified encoding" do
- 0x0000.chr(Encoding::US_ASCII).encoding.should == Encoding::US_ASCII
- 0x007F.chr(Encoding::US_ASCII).encoding.should == Encoding::US_ASCII
-
- 0x0000.chr(Encoding::ASCII_8BIT).encoding.should == Encoding::ASCII_8BIT
- 0x007F.chr(Encoding::ASCII_8BIT).encoding.should == Encoding::ASCII_8BIT
- 0x0080.chr(Encoding::ASCII_8BIT).encoding.should == Encoding::ASCII_8BIT
- 0x00FF.chr(Encoding::ASCII_8BIT).encoding.should == Encoding::ASCII_8BIT
-
- 0x0000.chr(Encoding::UTF_8).encoding.should == Encoding::UTF_8
- 0x007F.chr(Encoding::UTF_8).encoding.should == Encoding::UTF_8
- 0x0080.chr(Encoding::UTF_8).encoding.should == Encoding::UTF_8
- 0x00FF.chr(Encoding::UTF_8).encoding.should == Encoding::UTF_8
- 0x0100.chr(Encoding::UTF_8).encoding.should == Encoding::UTF_8
- 0x3000.chr(Encoding::UTF_8).encoding.should == Encoding::UTF_8
-
- 0x0000.chr(Encoding::SHIFT_JIS).encoding.should == Encoding::SHIFT_JIS
- 0x007F.chr(Encoding::SHIFT_JIS).encoding.should == Encoding::SHIFT_JIS
- 0x00A1.chr(Encoding::SHIFT_JIS).encoding.should == Encoding::SHIFT_JIS
- 0x00DF.chr(Encoding::SHIFT_JIS).encoding.should == Encoding::SHIFT_JIS
- 0x8140.chr(Encoding::SHIFT_JIS).encoding.should == Encoding::SHIFT_JIS
- 0xFC4B.chr(Encoding::SHIFT_JIS).encoding.should == Encoding::SHIFT_JIS
- end
-
- it "returns a String encoding self interpreted as a codepoint in the specified encoding" do
- 0x0000.chr(Encoding::US_ASCII).bytes.to_a.should == [0x00]
- 0x007F.chr(Encoding::US_ASCII).bytes.to_a.should == [0x7F]
-
- 0x0000.chr(Encoding::ASCII_8BIT).bytes.to_a.should == [0x00]
- 0x007F.chr(Encoding::ASCII_8BIT).bytes.to_a.should == [0x7F]
- 0x0080.chr(Encoding::ASCII_8BIT).bytes.to_a.should == [0x80]
- 0x00FF.chr(Encoding::ASCII_8BIT).bytes.to_a.should == [0xFF]
-
- 0x0000.chr(Encoding::UTF_8).bytes.to_a.should == [0x00]
- 0x007F.chr(Encoding::UTF_8).bytes.to_a.should == [0x7F]
- 0x0080.chr(Encoding::UTF_8).bytes.to_a.should == [0xC2, 0x80]
- 0x00FF.chr(Encoding::UTF_8).bytes.to_a.should == [0xC3, 0xBF]
- 0x0100.chr(Encoding::UTF_8).bytes.to_a.should == [0xC4, 0x80]
- 0x3000.chr(Encoding::UTF_8).bytes.to_a.should == [0xE3, 0x80, 0x80]
-
- 0x0000.chr(Encoding::SHIFT_JIS).bytes.to_a.should == [0x00]
- 0x007F.chr(Encoding::SHIFT_JIS).bytes.to_a.should == [0x7F]
- 0x00A1.chr(Encoding::SHIFT_JIS).bytes.to_a.should == [0xA1]
- 0x00DF.chr(Encoding::SHIFT_JIS).bytes.to_a.should == [0xDF]
- 0x8140.chr(Encoding::SHIFT_JIS).bytes.to_a.should == [0x81, 0x40] # Smallest assigned CP932 codepoint greater than 255
- 0xFC4B.chr(Encoding::SHIFT_JIS).bytes.to_a.should == [0xFC, 0x4B] # Largest assigned CP932 codepoint
- end
-
- # #5864
- it "raises RangeError if self is invalid as a codepoint in the specified encoding" do
- [ [0x80, "US-ASCII"],
- [0x0100, "ASCII-8BIT"],
- [0x0100, "EUC-JP"],
- [0xA1A0, "EUC-JP"],
- [0xA1, "EUC-JP"],
- [0x80, "SHIFT_JIS"],
- [0xE0, "SHIFT_JIS"],
- [0x0100, "ISO-8859-9"],
- [620, "TIS-620"],
- [0xD800, "UTF-8"],
- [0xDBFF, "UTF-8"],
- [0xDC00, "UTF-8"],
- [0xDFFF, "UTF-8"],
- [0xD800, "UTF-16"],
- [0xDBFF, "UTF-16"],
- [0xDC00, "UTF-16"],
- [0xDFFF, "UTF-16"],
- ].each do |integer, encoding_name|
- lambda { integer.chr(encoding_name) }.should raise_error(RangeError)
- end
- end
-end