class_docstr: Base class for testing proxy APIs
  
  Assumes that real classes will provide an `obj_params` method which is a
  generator returning 2 tuples of (<proxy_maker>, <param_dict>).
  <proxy_maker> is a function returning a 3 tuple of (<proxy>, <fileobj>,
  <header>).  <param_dict> is a dictionary containing at least keys
  ``arr_out`` (expected output array from proxy), ``dtype_out`` (expected
  output dtype for array) and ``shape`` (shape of array).
  
  The <header> above should support at least "get_data_dtype",
  "set_data_dtype", "get_data_shape", "set_data_shape"
code: def validate_proxy_slicing(self, pmaker, params):
      # Confirm that proxy object can be sliced correctly
      arr = params["arr_out"]
      shape = arr.shape
      prox, fio, hdr = pmaker()
      for sliceobj in _some_slicers(shape):
          assert_array_equal(arr[sliceobj], prox[sliceobj])
  
imports: import unittest
  import warnings
  from io import BytesIO
  from itertools import product
  from os.path import join
  import numpy
  import pytest
  from numpy.testing import assert_allclose, assert_array_equal
  from ..None import ecat, minc1, minc2, parrec
  from ..analyze import AnalyzeHeader
  from ..arrayproxy import ArrayProxy, is_proxy
  from ..casting import have_binary128, sctypes
  from ..externals.netcdf import netcdf_file
  from ..freesurfer.mghformat import MGHHeader
  from ..nifti1 import Nifti1Header
  from ..optpkg import optional_package
  from ..spm2analyze import Spm2AnalyzeHeader
  from ..spm99analyze import Spm99AnalyzeHeader
  from ..testing import assert_dt_equal, clear_and_catch_warnings
  from ..testing import data_path
  from ..tmpdirs import InTemporaryDirectory
  from ..volumeutils import apply_read_scaling
  from .test_api_validators import ValidateAPI
  from .test_parrec import EG_REC, VARY_REC
label_desc: Use image node_id 8 for calling the _TestProxyAPI obj's underlying member method code with example usage: obj.validate_proxy_slicing(pmaker, params) without return types