code: def test_ndindexer(self, data):
      shape = data.draw(hnp.array_shapes())
      indexer = data.draw(nd_indexer_strategy(shape))
      is_int_indexer = [
          not isinstance(idx, Slice) for idx in indexer.indices
      ]
      rest_indexers, int_indexers = util.partition_list(
          is_int_indexer, indexer.indices
      )
      if int_indexers:
          expected_int_indexer_shape = int_indexers[0].shape
      else:
          expected_int_indexer_shape = ()
      self.assertTupleEqual(
          indexer.int_indexer_shape, expected_int_indexer_shape
      )
      for idx in rest_indexers:
          self.assertIsInstance(idx, (np.ndarray, Slice))
          if isinstance(idx, np.ndarray):
              self.assertTupleEqual(idx.shape, ())
              self.assertEqual(idx.dtype, np.dtype("int32"))
      rest_shape = tuple(
          r.size for r in rest_indexers if not isinstance(r, np.ndarray)
      )
      self.assertTupleEqual(
          (*indexer.int_indexer_shape, *rest_shape),
          indexer.get_indexer_shape(),
      )
  
imports: from __future__ import annotations
  import unittest
  from absl.testing import absltest
  from absl.testing import parameterized
  import jax
  from jax._src import util
  from jax._src.state import indexing
  import numpy
  import hypothesis.extra.numpy
  import hypothesis.strategies
label_desc: Use image node_id 11 for calling the IndexerTest obj's underlying member method code with example usage: obj.test_ndindexer(data) without return types