diff options
Diffstat (limited to 'test/fiddle/test_memory_view.rb')
| -rw-r--r-- | test/fiddle/test_memory_view.rb | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/test/fiddle/test_memory_view.rb b/test/fiddle/test_memory_view.rb deleted file mode 100644 index da00d66c91..0000000000 --- a/test/fiddle/test_memory_view.rb +++ /dev/null @@ -1,175 +0,0 @@ -# frozen_string_literal: true -begin - require_relative 'helper' -rescue LoadError - return -end - -begin - require '-test-/memory_view' -rescue LoadError - return -end - -module Fiddle - class TestMemoryView < TestCase - def setup - omit "MemoryView is unavailable" unless defined? Fiddle::MemoryView - end - - def test_null_ptr - assert_raise(ArgumentError) do - MemoryView.new(Fiddle::NULL) - end - end - - def test_memory_view_from_unsupported_obj - obj = Object.new - assert_raise(ArgumentError) do - MemoryView.new(obj) - end - end - - def test_memory_view_from_pointer - str = Marshal.load(Marshal.dump("hello world")) - ptr = Pointer[str] - mview = MemoryView.new(ptr) - begin - assert_same(ptr, mview.obj) - assert_equal(str.bytesize, mview.byte_size) - assert_equal(true, mview.readonly?) - assert_equal(nil, mview.format) - assert_equal(1, mview.item_size) - assert_equal(1, mview.ndim) - assert_equal(nil, mview.shape) - assert_equal(nil, mview.strides) - assert_equal(nil, mview.sub_offsets) - - codes = str.codepoints - assert_equal(codes, (0...str.bytesize).map {|i| mview[i] }) - ensure - mview.release - end - end - - def test_memory_view_multi_dimensional - omit "MemoryViewTestUtils is unavailable" unless defined? MemoryViewTestUtils - - buf = [ 1, 2, 3, 4, - 5, 6, 7, 8, - 9, 10, 11, 12 ].pack("l!*") - shape = [3, 4] - md = MemoryViewTestUtils::MultiDimensionalView.new(buf, "l!", shape, nil) - mview = Fiddle::MemoryView.new(md) - begin - assert_equal(buf.bytesize, mview.byte_size) - assert_equal("l!", mview.format) - assert_equal(Fiddle::SIZEOF_LONG, mview.item_size) - assert_equal(2, mview.ndim) - assert_equal(shape, mview.shape) - assert_equal([Fiddle::SIZEOF_LONG*4, Fiddle::SIZEOF_LONG], mview.strides) - assert_equal(nil, mview.sub_offsets) - assert_equal(1, mview[0, 0]) - assert_equal(4, mview[0, 3]) - assert_equal(6, mview[1, 1]) - assert_equal(10, mview[2, 1]) - ensure - mview.release - end - end - - def test_memory_view_multi_dimensional_with_strides - omit "MemoryViewTestUtils is unavailable" unless defined? MemoryViewTestUtils - - buf = [ 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16 ].pack("l!*") - shape = [2, 8] - strides = [4*Fiddle::SIZEOF_LONG*2, Fiddle::SIZEOF_LONG*2] - md = MemoryViewTestUtils::MultiDimensionalView.new(buf, "l!", shape, strides) - mview = Fiddle::MemoryView.new(md) - begin - assert_equal("l!", mview.format) - assert_equal(Fiddle::SIZEOF_LONG, mview.item_size) - assert_equal(buf.bytesize, mview.byte_size) - assert_equal(2, mview.ndim) - assert_equal(shape, mview.shape) - assert_equal(strides, mview.strides) - assert_equal(nil, mview.sub_offsets) - assert_equal(1, mview[0, 0]) - assert_equal(5, mview[0, 2]) - assert_equal(9, mview[1, 0]) - assert_equal(15, mview[1, 3]) - ensure - mview.release - end - end - - def test_memory_view_multi_dimensional_with_multiple_members - omit "MemoryViewTestUtils is unavailable" unless defined? MemoryViewTestUtils - - buf = [ 1, 2, 3, 4, 5, 6, 7, 8, - -1, -2, -3, -4, -5, -6, -7, -8].pack("s*") - shape = [2, 4] - strides = [4*Fiddle::SIZEOF_SHORT*2, Fiddle::SIZEOF_SHORT*2] - md = MemoryViewTestUtils::MultiDimensionalView.new(buf, "ss", shape, strides) - mview = Fiddle::MemoryView.new(md) - begin - assert_equal("ss", mview.format) - assert_equal(Fiddle::SIZEOF_SHORT*2, mview.item_size) - assert_equal(buf.bytesize, mview.byte_size) - assert_equal(2, mview.ndim) - assert_equal(shape, mview.shape) - assert_equal(strides, mview.strides) - assert_equal(nil, mview.sub_offsets) - assert_equal([1, 2], mview[0, 0]) - assert_equal([5, 6], mview[0, 2]) - assert_equal([-1, -2], mview[1, 0]) - assert_equal([-7, -8], mview[1, 3]) - ensure - mview.release - end - end - - def test_export - str = "hello world" - mview_str = MemoryView.export(Pointer[str]) do |mview| - mview.to_s - end - assert_equal(str, mview_str) - end - - def test_release - ptr = Pointer["hello world"] - mview = MemoryView.new(ptr) - assert_same(ptr, mview.obj) - mview.release - assert_nil(mview.obj) - end - - def test_to_s - # U+3042 HIRAGANA LETTER A - data = "\u{3042}" - ptr = Pointer[data] - mview = MemoryView.new(ptr) - begin - string = mview.to_s - assert_equal([data.b, true], - [string, string.frozen?]) - ensure - mview.release - end - end - - def test_ractor_shareable - omit("Need Ractor") unless defined?(Ractor) - ptr = Pointer["hello world"] - mview = MemoryView.new(ptr) - begin - assert_ractor_shareable(mview) - assert_predicate(ptr, :frozen?) - ensure - mview.release - end - end - end -end |
