diff options
author | Samuel Williams <[email protected]> | 2022-05-09 17:19:01 +1200 |
---|---|---|
committer | GitHub <[email protected]> | 2022-05-09 17:19:01 +1200 |
commit | cea34bd8082784051542131ddf8a353f5656ac88 (patch) | |
tree | 0f599852290e4b7409663d1016caae472c42bfed /test/ruby/test_io_buffer.rb | |
parent | df0bcb3385746e010e100dfb4e66a25dddc2c8fd (diff) |
Add basic binary operators (and, or, xor, not) to `IO::Buffer`. (#5893)
Notes
Notes:
Merged-By: ioquatix <[email protected]>
Diffstat (limited to 'test/ruby/test_io_buffer.rb')
-rw-r--r-- | test/ruby/test_io_buffer.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/ruby/test_io_buffer.rb b/test/ruby/test_io_buffer.rb index e3f7021b26..d77f0afec8 100644 --- a/test/ruby/test_io_buffer.rb +++ b/test/ruby/test_io_buffer.rb @@ -331,4 +331,26 @@ class TestIOBuffer < Test::Unit::TestCase ensure io.close! end + + def test_operators + source = IO::Buffer.for("1234123412") + mask = IO::Buffer.for("133\x00") + result = source & mask + + assert_equal (source & mask), IO::Buffer.for("123\x00123\x0012") + assert_equal (source | mask), IO::Buffer.for("1334133413") + assert_equal (source ^ mask), IO::Buffer.for("\x00\x01\x004\x00\x01\x004\x00\x01") + assert_equal ~source, IO::Buffer.for("\xce\xcd\xcc\xcb\xce\xcd\xcc\xcb\xce\xcd") + end + + def test_inplace_operators + source = IO::Buffer.for("1234123412") + mask = IO::Buffer.for("133\x00") + result = source & mask + + assert_equal source.dup.and!(mask), IO::Buffer.for("123\x00123\x0012") + assert_equal source.dup.or!(mask), IO::Buffer.for("1334133413") + assert_equal source.dup.xor!(mask), IO::Buffer.for("\x00\x01\x004\x00\x01\x004\x00\x01") + assert_equal source.dup.not!, IO::Buffer.for("\xce\xcd\xcc\xcb\xce\xcd\xcc\xcb\xce\xcd") + end end |