summaryrefslogtreecommitdiff
path: root/spec/rubyspec/core/array/pack/h_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/core/array/pack/h_spec.rb')
-rw-r--r--spec/rubyspec/core/array/pack/h_spec.rb197
1 files changed, 0 insertions, 197 deletions
diff --git a/spec/rubyspec/core/array/pack/h_spec.rb b/spec/rubyspec/core/array/pack/h_spec.rb
deleted file mode 100644
index 2412bf57c9..0000000000
--- a/spec/rubyspec/core/array/pack/h_spec.rb
+++ /dev/null
@@ -1,197 +0,0 @@
-# -*- encoding: ascii-8bit -*-
-require File.expand_path('../../../../spec_helper', __FILE__)
-require File.expand_path('../../fixtures/classes', __FILE__)
-require File.expand_path('../shared/basic', __FILE__)
-require File.expand_path('../shared/encodings', __FILE__)
-
-describe "Array#pack with format 'H'" do
- it_behaves_like :array_pack_basic, 'H'
- it_behaves_like :array_pack_basic_non_float, 'H'
- it_behaves_like :array_pack_arguments, 'H'
- it_behaves_like :array_pack_hex, 'H'
-
- it "calls #to_str to convert an Object to a String" do
- obj = mock("pack H string")
- obj.should_receive(:to_str).and_return("a")
- [obj].pack("H").should == "\xa0"
- end
-
- it "encodes the first character as the most significant nibble when passed no count modifier" do
- ["ab"].pack("H").should == "\xa0"
- end
-
- it "implicitly has count equal to the string length when passed the '*' modifier" do
- ["deadbeef"].pack("H*").should == "\xde\xad\xbe\xef"
- end
-
- it "encodes count nibbles when passed a count modifier exceeding the string length" do
- ["ab"].pack('H8').should == "\xab\x00\x00\x00"
- end
-
- it "encodes the first character as the most significant nibble of a hex value" do
- [ [["0"], "\x00"],
- [["1"], "\x10"],
- [["2"], "\x20"],
- [["3"], "\x30"],
- [["4"], "\x40"],
- [["5"], "\x50"],
- [["6"], "\x60"],
- [["7"], "\x70"],
- [["8"], "\x80"],
- [["9"], "\x90"],
- [["a"], "\xa0"],
- [["b"], "\xb0"],
- [["c"], "\xc0"],
- [["d"], "\xd0"],
- [["e"], "\xe0"],
- [["f"], "\xf0"],
- [["A"], "\xa0"],
- [["B"], "\xb0"],
- [["C"], "\xc0"],
- [["D"], "\xd0"],
- [["E"], "\xe0"],
- [["F"], "\xf0"]
- ].should be_computed_by(:pack, "H")
- end
-
- it "encodes the second character as the least significant nibble of a hex value" do
- [ [["00"], "\x00"],
- [["01"], "\x01"],
- [["02"], "\x02"],
- [["03"], "\x03"],
- [["04"], "\x04"],
- [["05"], "\x05"],
- [["06"], "\x06"],
- [["07"], "\x07"],
- [["08"], "\x08"],
- [["09"], "\x09"],
- [["0a"], "\x0a"],
- [["0b"], "\x0b"],
- [["0c"], "\x0c"],
- [["0d"], "\x0d"],
- [["0e"], "\x0e"],
- [["0f"], "\x0f"],
- [["0A"], "\x0a"],
- [["0B"], "\x0b"],
- [["0C"], "\x0c"],
- [["0D"], "\x0d"],
- [["0E"], "\x0e"],
- [["0F"], "\x0f"]
- ].should be_computed_by(:pack, "H2")
- end
-
- it "encodes the least significant nibble of a non alphanumeric character as the most significant nibble of the hex value" do
- [ [["^"], "\xe0"],
- [["*"], "\xa0"],
- [["#"], "\x30"],
- [["["], "\xb0"],
- [["]"], "\xd0"],
- [["@"], "\x00"],
- [["!"], "\x10"],
- [["H"], "\x10"],
- [["O"], "\x80"],
- [["T"], "\xd0"],
- [["Z"], "\x30"],
- ].should be_computed_by(:pack, "H")
- end
-
- it "returns an ASCII-8BIT string" do
- ["41"].pack("H").encoding.should == Encoding::ASCII_8BIT
- end
-end
-
-describe "Array#pack with format 'h'" do
- it_behaves_like :array_pack_basic, 'h'
- it_behaves_like :array_pack_basic_non_float, 'h'
- it_behaves_like :array_pack_arguments, 'h'
- it_behaves_like :array_pack_hex, 'h'
-
- it "calls #to_str to convert an Object to a String" do
- obj = mock("pack H string")
- obj.should_receive(:to_str).and_return("a")
- [obj].pack("h").should == "\x0a"
- end
-
- it "encodes the first character as the least significant nibble when passed no count modifier" do
- ["ab"].pack("h").should == "\x0a"
- end
-
- it "implicitly has count equal to the string length when passed the '*' modifier" do
- ["deadbeef"].pack("h*").should == "\xed\xda\xeb\xfe"
- end
-
- it "encodes count nibbles when passed a count modifier exceeding the string length" do
- ["ab"].pack('h8').should == "\xba\x00\x00\x00"
- end
-
- it "encodes the first character as the least significant nibble of a hex value" do
- [ [["0"], "\x00"],
- [["1"], "\x01"],
- [["2"], "\x02"],
- [["3"], "\x03"],
- [["4"], "\x04"],
- [["5"], "\x05"],
- [["6"], "\x06"],
- [["7"], "\x07"],
- [["8"], "\x08"],
- [["9"], "\x09"],
- [["a"], "\x0a"],
- [["b"], "\x0b"],
- [["c"], "\x0c"],
- [["d"], "\x0d"],
- [["e"], "\x0e"],
- [["f"], "\x0f"],
- [["A"], "\x0a"],
- [["B"], "\x0b"],
- [["C"], "\x0c"],
- [["D"], "\x0d"],
- [["E"], "\x0e"],
- [["F"], "\x0f"]
- ].should be_computed_by(:pack, "h")
- end
-
- it "encodes the second character as the most significant nibble of a hex value" do
- [ [["00"], "\x00"],
- [["01"], "\x10"],
- [["02"], "\x20"],
- [["03"], "\x30"],
- [["04"], "\x40"],
- [["05"], "\x50"],
- [["06"], "\x60"],
- [["07"], "\x70"],
- [["08"], "\x80"],
- [["09"], "\x90"],
- [["0a"], "\xa0"],
- [["0b"], "\xb0"],
- [["0c"], "\xc0"],
- [["0d"], "\xd0"],
- [["0e"], "\xe0"],
- [["0f"], "\xf0"],
- [["0A"], "\xa0"],
- [["0B"], "\xb0"],
- [["0C"], "\xc0"],
- [["0D"], "\xd0"],
- [["0E"], "\xe0"],
- [["0F"], "\xf0"]
- ].should be_computed_by(:pack, "h2")
- end
-
- it "encodes the least significant nibble of a non alphanumeric character as the least significant nibble of the hex value" do
- [ [["^"], "\x0e"],
- [["*"], "\x0a"],
- [["#"], "\x03"],
- [["["], "\x0b"],
- [["]"], "\x0d"],
- [["@"], "\x00"],
- [["!"], "\x01"],
- [["H"], "\x01"],
- [["O"], "\x08"],
- [["T"], "\x0d"],
- [["Z"], "\x03"],
- ].should be_computed_by(:pack, "h")
- end
-
- it "returns an ASCII-8BIT string" do
- ["41"].pack("h").encoding.should == Encoding::ASCII_8BIT
- end
-end