diff options
| author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2026-04-02 15:37:37 +0900 |
|---|---|---|
| committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2026-05-11 13:54:09 +0900 |
| commit | eb053e7446607f5e70215bf508499ef6bab3aa4a (patch) | |
| tree | 964783ef8ca9555f69ef946aba3c9ff0bdae26d7 /test | |
| parent | 793f4c9572b9d888f0d40fb9d4ec783ea23486e4 (diff) | |
[Feature #21979] Allow negative offset in unpack
Diffstat (limited to 'test')
| -rw-r--r-- | test/ruby/test_pack.rb | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/test/ruby/test_pack.rb b/test/ruby/test_pack.rb index 3020e02761..6e5f0fe7ff 100644 --- a/test/ruby/test_pack.rb +++ b/test/ruby/test_pack.rb @@ -913,27 +913,29 @@ EXPECTED def test_unpack1_offset assert_equal 65, "ZA".unpack1("C", offset: 1) + assert_equal 65, "ZA".unpack1("C", offset: -1) assert_equal "01000001", "YZA".unpack1("B*", offset: 2) assert_nil "abc".unpack1("C", offset: 3) - assert_raise_with_message(ArgumentError, /offset can't be negative/) { - "a".unpack1("C", offset: -1) - } assert_raise_with_message(ArgumentError, /offset outside of string/) { "a".unpack1("C", offset: 2) } + assert_raise_with_message(ArgumentError, /offset outside of string/) { + "a".unpack1("C", offset: -2) + } assert_nil "a".unpack1("C", offset: 1) end def test_unpack_offset assert_equal [65], "ZA".unpack("C", offset: 1) + assert_equal [65], "ZA".unpack("C", offset: -1) assert_equal ["01000001"], "YZA".unpack("B*", offset: 2) assert_equal [nil, nil, nil], "abc".unpack("CCC", offset: 3) - assert_raise_with_message(ArgumentError, /offset can't be negative/) { - "a".unpack("C", offset: -1) - } assert_raise_with_message(ArgumentError, /offset outside of string/) { "a".unpack("C", offset: 2) } + assert_raise_with_message(ArgumentError, /offset outside of string/) { + "a".unpack("C", offset: -2) + } assert_equal [nil], "a".unpack("C", offset: 1) end |
