code: def test_reduceat(
      self, func, nin, nout, identity, shape, axis, idx_shape, dtype
  ):
      if (nin, nout) != (2, 1):
          self.skipTest(
              f"accumulate requires (nin, nout)=(2, 1); got {(nin, nout)=}"
          )
      jnp_fun = partial(
          jnp.frompyfunc(
              func, nin=nin, nout=nout, identity=identity
          ).reduceat,
          axis=axis,
      )
      np_fun = cast_outputs(
          partial(
              np.frompyfunc(
                  func, nin=nin, nout=nout, identity=identity
              ).reduceat,
              axis=axis,
          )
      )
  
      rng = jtu.rand_default(self.rng())
      idx_rng = jtu.rand_int(self.rng(), low=0, high=shape[axis])
      args_maker = lambda: [
          rng(shape, dtype),
          idx_rng(idx_shape, "int32"),
      ]
  
      self._CheckAgainstNumpy(jnp_fun, np_fun, args_maker)
      self._CompileAndCheck(jnp_fun, args_maker)
  
imports: from functools import partial
  from absl.testing import absltest
  import numpy
  import jax
  import jax.numpy
  from jax._src import test_util
  from jax._src.numpy.ufunc_api import get_if_single_primitive
  from jax import config
label_desc: Use image node_id 14 for calling the LaxNumpyUfuncTests obj's underlying member method code with example usage: obj.test_reduceat(func, nin, nout, identity, shape, axis, idx_shape, dtype) without return types