code: def test_ctypes_array_2d():
      char2d = ((ctypes.c_char * 10) * 4)()
      int2d = ((ctypes.c_int * 15) * 3)()
      long2d = ((ctypes.c_long * 7) * 2)()
  
      for carray in (char2d, int2d, long2d):
          info = m.get_buffer_info(carray)
          assert info.itemsize == ctypes.sizeof(carray[0]._type_)
          assert info.size == len(carray) * len(carray[0])
          assert info.ndim == 2
          assert info.shape == [len(carray), len(carray[0])]
          assert info.strides == [
              info.itemsize * len(carray[0]),
              info.itemsize,
          ]
          assert not info.readonly
  
file_path: coremltools/deps/pybind11/tests/test_buffers.py
imports: import ctypes
  import io
  import struct
  import pytest
  import env
  from pybind11_tests import ConstructorStats
  from pybind11_tests import buffers
label_desc: Use image node_id 8 for calling a global function with example usage: test_ctypes_array_2d() without return types