code: def test_pickle_void(self):
      # issue gh-13593
      dt = np.dtype([("obj", "O"), ("int", "i")])
      a = np.empty(1, dtype=dt)
      data = (bytearray(b"eman"),)
      a["obj"] = data
      a["int"] = 42
      ctor, args = a[0].__reduce__()
      # check the constructor is what we expect before interpreting the arguments
      assert ctor is np.core.multiarray.scalar
      dtype, obj = args
      # make sure we did not pickle the address
      assert not isinstance(obj, bytes)
  
      assert_raises(RuntimeError, ctor, dtype, 13)
  
      # Test roundtrip:
      dump = pickle.dumps(a[0])
      unpickled = pickle.loads(dump)
      assert a[0] == unpickled
  
      # Also check the similar (impossible) "object scalar" path:
      with pytest.warns(DeprecationWarning):
          assert ctor(np.dtype("O"), data) is data
  
imports: import collections.abc
  import textwrap
  from io import BytesIO
  from os import path
  from pathlib import Path
  import pytest
  import numpy
  from numpy.testing import assert_, assert_equal, assert_array_equal, assert_array_almost_equal, assert_raises, temppath
  from numpy.compat import pickle
label_desc: Use image node_id 10 for calling the TestRecord obj's underlying member method code with example usage: obj.test_pickle_void() without return types